我有一个巨大的数据框df在“a”列中包含数字我也有一个数据框name包含与这些数字相对应的名称。
df:
a b c name:
1 val1 val2 1 cat
1 val1 val2 2 dog
2 val1 val2 3 rabbit
3 val1 val2
3 val1 val2
3 val1 val2
现在我想用名字替换数字。新的数据帧应如下所示:
df:
a b c
cat val1 val2
cat val1 val2
dog val1 val2
rabbit val1 val2
rabbit val1 val2
rabbit val1 val2
我就这样意识到了这一点。它有效,但我不满意,因为我对名称进行了硬编码......
df$a<-replace(df$a, df$a==1, "cat" )
df$a<-replace(df$a, df$a==2, "dog" )
df$a<-replace(df$a, df$a==3, "rabbit" )
如何从我的数据框名称中获取新值?
谢谢你!
data:
df = data.frame(a = c(1,1,2,3,3,3), b = rep('val1', 6), c = rep('val2', 6))
用字符替换值:
df$a = c('cat', 'dog', 'rabbit')[ match(df$a, sort(unique(df$a))) ]
output
df
# a b c
#1 cat val1 val2
#2 cat val1 val2
#3 dog val1 val2
#4 rabbit val1 val2
#5 rabbit val1 val2
#6 rabbit val1 val2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)