根据R中的前缀循环变量名称

时间:2014-03-20 12:45:24

标签: r loops

我必须进行一些比较,我想知道如何自动化整个程序。假设我只有以下变量:

age location serial weight height age_n location_n serial_n weight_n height_n

我想比较

data[weight != weight_n,c("serial ","weight","weight_n") , drop = F]

表示每个变量。 如何循环遍历所有变量?

我在尝试

for (nam in colnames(df)) {
  data['nam' != 'nam'_n,c("serial ",'nam','nam'_n) , drop = F]           
}

1 个答案:

答案 0 :(得分:3)

这是另一种选择。请注意,您应该只遍历_n的列名称(因此grep部分中的for):

for(nam in colnames(df)[-grep("_n$", colnames(df))]) {
  data[
    data[[nam]] != data[[paste0(nam, "_n"]], 
    c("serial", nam, paste0(nam, "_n")
  ]  
}