전체 목표는 문자열의 테이블 (실험의 합성 샘플 내용)을 새 문자열로 다시 쓰는 것입니다 (M, L, 또는 B)가 무엇인지를 나타냅니다. 나는 stri_count_fixed를 사용하여 각 요소의 수를 구하고 MO, LI 및 BA라는 세 개의 별도 벡터에이 수를 계산했습니다. 이제는 원래의 문자열을 M, L 또는 B 중 가장 큰 숫자로 다시 쓰고 자 할 경우 타이가 있으면 "T"로 바꿉니다. 참고 : NA가 하나 있습니다.R : 하나의 조건을 기반으로 데이터 프레임의 문자열을 대체하려고합니다. TRUE/FALSE가 필요한 곳에 누락 값 가져 오기
그래서 루프 내 :
for (i in 1:60) {
if (is.nan(MO[i])) {content$Content[i]<-NA)
} else {
if (MO[i] > LI[i] && MO[x] > BA[i]){
content$Content[x]<-"M"
} else {
if (LI[i] > MO[i] && LI[i] > BA[i]) {
content$Content[i]<-"L"
} else {
if (BA [i] > MO[i] && BA[i] > LI[i]) {
content$Content[i]<-"B"
} else {
content$Content[i]<-"T"
}
}
}
}
}
내가이 오류 중 하나 MO는 [I] [I], NA를 던지고있다, LI [I], 또는 BA는 비록에게 내가 이해하지 못하는 것을 의미 이해 이것이 단순 벡터에 대해 어떻게 일어날 수 있는지를 설명합니다. 모든 i를 1로 대체하면 if 체인이 정상적으로 작동하므로 실제로 어떤 일이 일어나는지 전혀 알 수 없습니다. 어떤 도움이라도 대단히 감사하겠습니다. 아마도 조건없이이 작업을 수행 할 수있는 방법이있을 것입니다. 시간에 나는이 작업을 썼다지만, 난 그냥 ... 손으로 할 수 있었다
'is.nan (NA)'는'거짓 '입니다. 어쩌면 당신은'is.na()'대신에 ?? –
왜 두 번째 경우 MO [x] 및 Content [x]입니까? – ARobertson
좋은 캐치, ARobertson! 그게 문제 였을지 모르지만 솔직히 다른 컴퓨터를 사용하고 작동한다는 것을 기억합니다. 상관없이 고마워! –