gpt4 book ai didi

用R中的列名替换行值

转载 作者:行者123 更新时间:2023-12-01 02:13:07 24 4
gpt4 key购买 nike

我有一个如下的数据框

df<- data.frame(a = c(1,2,3,4,5), 
b = c(6,7,8,9,10),
c = c(11,12,13,14,15),
z = c("b","c","a","a","b"))

我正在尝试替换该行的列名等于 Z 列中的值的行值。所需的输出如下
   a  b  c z
1 1 NA 11 b
2 2 7 NA c
3 NA 8 13 a
4 NA 9 14 a
5 5 NA 15 b

我在想像下面的代码应用于每一行
If column name is equal to Z, replace value with NA

但是想不通。任何帮助表示赞赏

干杯!

最佳答案

矩阵索引 match -ing z列到 colnames

df[cbind(seq(nrow(df)),match(df$z,colnames(df[1:3])))] <- NA
df

a b c z
1 1 NA 11 b
2 2 7 NA c
3 NA 8 13 a
4 NA 9 14 a
5 5 NA 15 b

关于用R中的列名替换行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27557705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com