【发布时间】:2017-03-21 21:41:40
【问题描述】:
我想按等级更改分类列中的所有值。可以使用列中已排序的唯一元素的索引来确定排名。
例如,
> data[1:5,1]
[1] "B2" "C4" "C5" "C1" "B5"
然后我希望列中的这些条目替换分类值
> data[1:5,1]
[1] "1" "4" "5" "3" "2"
另一栏:
> data[1:5,3]
[1] "Verified" "Source Verified" "Not Verified" "Source Verified" "Source Verified"
然后更新列:
> data[1:5,3]
[1] "3" "2" "1" "2" "2"
我在这个任务中使用了这段代码,但它需要很多时间。
for(i in 1:ncol(data)){
if(is.character(data[,i])){
temp <- sort(unique(data[,i]))
for(j in 1:nrow(data)){
for(k in 1:length(temp)){
if(data[j,i] == temp[k]){
data[j,i] <- k}
}
}
}
}
如果可能的话,请建议我执行此操作的有效方法。 谢谢。
【问题讨论】:
-
看看
plyrsmapvalues。
标签: r categorical-data columnname