我在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
Run Code Online (Sandbox Code Playgroud)
我想要的是每当行等于1时用行名替换行值.输出将是这一个:
a b c
1 a b c
2 0 0 c
3 0 0 0
4 a b c
4 0 0 c
Run Code Online (Sandbox Code Playgroud)
我怎么能在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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |