我使用以下内容(取自replace string in dataframe)将西班牙语单词“Si”或“Sí”替换为“是”
(CensResultsUnpivot <- as.data.frame(lapply(CensResultsUnpivot, function(x) if (is.character(x)|is.factor(x)) gsub("[Si|Sí]", "Yes", x) else x)))
我到处得到的结果是“YesYes”而不是“Yes”......?为什么呢?
答案 0 :(得分:4)
尝试
gsub("Si|Sí", "Yes", x)
而不是
gsub("[Si|Sí]", "Yes", x)
当使用括号时,R将“S”和“i”中的任何字符替换为“是”,这就是为什么你得到“YesYes”
答案 1 :(得分:2)
这是更快/更好的R代码
testFrame <- as.data.frame(matrix(1:5,ncol=5,nrow=4))
V1 V2 V3 V4 V5
1 1 5 4 3 2
2 2 1 5 4 3
3 3 2 1 5 4
4 4 3 2 1 5
testFrame[testFrame==1 | testFrame ==2] <- "yes"
> testFrame
V1 V2 V3 V4 V5
1 yes 5 4 3 yes
2 yes yes 5 4 3
3 3 yes yes 5 4
4 4 3 yes yes 5