引用名称为 'composite' 的变量

标签 r

我有一个以下形式的数据框:

Idx Var X12 X34 
12 NA 444 100 
34 NA 500 777 
12 300 600 900 

我需要将 Var 中的 NA 替换为“X”变量中“Idx”引用的正确值,因此如果 Idx=12,那么我们需要“X12”的值。生成的数据框将如下所示:

Idx Var X12 X34
12 444 444 100 
34 777 500 777 
12 300 600 900 


我尝试将“Idx”与“X”连接起来,但 R 不认为这是一个有效的变量。我尝试过的:

df$Var <- ifelse(is.na(df$Var), 
   df[[paste0("X", df$Idx)]],
   df$Var

但这给了我一个错误:

Error in .subset2(x, i, exact = exact) : 
recursive indexing failed at level 2

最佳答案

解决方案,我迭代每一行并询问 Var 是否为 NA。如果 Var 为 NA,我提取相应的 Idx 列,否则返回 Var

d$Var <- apply(d, 1, function(x) ifelse(is.na(x[2]),
                                        x[paste0("X", x[1])],
                                        x[2]))

关于引用名称为 'composite' 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46806744/

相关文章:

json - 如何使用管道工 R 发送 json 响应

r - 识别R中2个数据帧的唯一值

r - knitr_child 升级到 R 3.0 后抛出错误

r - 寻找独特的列

r - 将信息发送到 Google 电子表格/Google 表单

r - 用 ggplot2 直方图中另一个连续变量的平均值填充条形颜色

r - 如何为每个数据集条目在相应的多边形中创建随机点

r - 为重复的 POSIXct 日期添加一秒

r - 使用 R 中的稀疏矩阵从向量中提取元素,而不转换为稠密矩阵

r - 如何将单个 scale_color* 的不同方面映射到 ggplot2 中的不同变量?