use*_*015 0 string r dataframe r-factor
我有一个非常大的数据框(假设有 8 行 x 10,000 列),其中充满了字符串。我想将每个唯一的字符串转换为数字并用它替换。
例如,如果我有一个数据框:
X1 X2 X3
1 cat mouse rabbit
2 dog cat, dog dog
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
X1 X2 X3
1 1 2 3
2 4 5 4
Run Code Online (Sandbox Code Playgroud)
请注意,“猫,狗”的组合标签有自己的唯一编号。每个字符串的实际编号是无关紧要的,因为我这样做是为了评估者间的可靠性计算。
如果我没有获得所有独特的元素,为它们分配一个数字并替换,是否有更优雅的方法来做到这一点?
另外,如果元素中的值为空,例如“”,则应将其转换为数字 DF 中的 NA。
您可以match
对unique
值进行:
df[] <- sapply(df, match, unique(unlist(df)))
#> df
X1 X2 X3
1 1 3 5
2 2 4 2
Run Code Online (Sandbox Code Playgroud)
或者,更简单:
df[] <- match(unlist(df), unique(unlist(df)))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
77 次 |
最近记录: |