我在R中有一个包含多个列的数据框df
,其中columnA
和columnB
很感兴趣:
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
等?
答案 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) )