我在 R 中有一个下表
df <- data.frame('a' = c(1,0,0,1,0),
'b' = c(1,0,0,1,0),
'c' = c(1,1,0,1,1))
df
a b c
1 1 1 1
2 0 0 1
3 0 0 0
4 1 1 1
4 0 0 1
我想要的是在行等于 1 时用列名替换行值。输出将是这样的:
a b c
1 a b c
2 0 0 c
3 0 0 0
4 a b c
4 0 0 c
我怎样才能在 R 中做到这一点?谢谢。
最佳答案
我会用 Map
和 replace
:
df[] <- Map(function(n, x) replace(x, x == 1, n), names(df), df)
df
# a b c
# 1 a b c
# 2 0 0 c
# 3 0 0 0
# 4 a b c
# 5 0 0 c
关于r - 如何用列名替换某些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50235510/