将列值写入具有R中第二列的匹配值的文件

时间:2016-08-14 13:50:02

标签: r

我在R中有一个包含多个列的数据框df,其中columnAcolumnB很感兴趣:

columnA    columnB
ab1        'This is a string'
ts4        'This is another string'
pq9        'This is yet another string'

我想将字符串写入文件,并在文件名中包含匹配的columnA值。

sapply(df$columnB, function(x){
  write.table(x,
          file = paste("matching_column_a_",
                       which(x == df$columnB, arr.ind = T),
                       ".txt",
                       sep = ""),
          col.names = FALSE,
          row.names = FALSE,
          append=F,
          sep = "\t",
          quote = FALSE)
})

但是,我的try只提供行的索引,但对我来说没用。

有没有办法将它写入一个文件,其中columnB字符串的文件的匹配文件名类似于matching_column_a_ab1.txt...a_ts4.txt等?

1 个答案:

答案 0 :(得分:1)

我们可以遍历行序列,使用该索引对列值进行子集化,以便将其写入不同的文件。

lapply(seq_len(nrow(df1)), function(i)
       write.table(df1$columnB,
                  file = paste0("matching_column_a_", df1$columnA[i], ".txt"),
                  col.names = FALSE,
                  row.names = FALSE,
                  append=FALSE,
                  sep = "\t",
                  quote = FALSE) )