2
저는 R에서 일하고 있습니다. 샘플 이름이 많은 여러 데이터 프레임이 있고 각 행에 색상을 지정하려고합니다. 샘플 이름을 기반으로 각 데이터 프레임에 동일한 샘플 이름을 가진 많은 행이 있지만 샘플 이름별로 정렬 할 수 없기 때문에 지저분한 출력 데이터가 있습니다. 여기에 내가문자열이있는 공유 값을 기반으로 데이터 프레임에 색상을 지정하십시오. R
names <- c("TC3", "102", "172", "136", "142", "143", "AC2G")
colors <- c("darkorange", "forestgreen", "darkolivegreen", "darkgreen", "darksalmon", "firebrick3", "firebrick1")
dataA <- c("JR13-101A", "TC3B", "JR12-136C", "AC2GA", "TC3A")
newcolors <- rep(NA, length(dataA))
dataA <- as.data.frame(cbind(dataA, newcolors))
를 가지고있는 작은 예를 들어 사건과 나는 다음 시도했다 (루프와, 나도 알아,하지만 그건 내가 할 생각할 수있는 전부입니다). 또한 R의 루프에서 뒤로 물러나려고 노력하고 있지만 아직 습관을 깨뜨리지 않았습니다.
다음은 내가 시도한 내용입니다.
dataA$newcolors<-as.character(dataA$newcolors)
for(j in 1:length(names)) {
dataA$newcolors[grep(names[j], dataA$dataA)] <- colors[j]
}
대신 요소의 문자에 newcolors 열을 변환한다 : 확실한 아마 뭔가,하지만 난 그냥 NA
를 얻을 여기 모든 newcolors
for(i in 1:nrow(dataA)) {
for(j in 1:length(names)) {
if(grepl(dataA$dataA[ i ], names[ j ])) {
dataA$newcolors[ i ] <- colors[ j ]
}
}
}