首页 > 解决方案 > R - 将值输入到列的下一行

问题描述

我有一个看起来像这样的数据框:

V1    V2
10    5
11    15
12    NA
13    NA

V1 是在外部文件中找到的已生成向量。V2 是要更新和更改的列。此数据帧存储在一个外部文件中,该文件在调用 R 脚本时被读入。R 脚本还有一个公式,可以生成一个新值。生成新值的代码:

value <- 10 + 4

这是一个简单的添加,将产生新的价值。该值需要传递到 V2 列替换下一行(您看到的第一个 NA),然后写入文件。假设 R 生成的值为 14,它应该如下所示:

V1    V2
10    5
11    15
12    14
13    NA

我在设置 RI 中的循环或函数时遇到问题,需要调用才能完成此任务。任何帮助表示赞赏。谢谢你。

标签: rdataframe

解决方案


使用匹配功能

df = read.table(text='V1    V2
                      10    5
                      11    15
                      12    NA
                      13    NA',header = T) 

for (i in 4:5) {
  value = 10 + i
  df$V2[match(NA,df$V2)] = value
  print(df$V2)
}
#[1]  5 15 14 NA
#[1]  5 15 14 15

推荐阅读