1
文本文件我有一个读CSV文件成如下一个data.table:写每个data.table列单独的R中
Cat1 Cat2 Cat3 Country file_name
1: A E B Canada first
2: C B India Second
3: C Canada third
4: B Ireland Fourth
5: C A India fifth
6: A C F Canada Sixth
我使用下面的代码来写每个内容行到一个单独的文本文件:
lapply(1:nrow(df), function(i) write.table(df[i], file= paste0("./TextFiles/", df[i, file_name], ".txt"), row.names = F, col.names = F, quote = F))
现在我正写的输出是“Sixth.txt”(例如)如下:
A C F Canada Sixth
不过,我希望文字如下:
Cat1
A
Cat2
C
Cat3
F
Country
Canada
有没有办法得到这个输出,而不嵌套很多lapply?
试图代码:
lapply(df, function(i) i)
给出了输出:
$Cat1
[1] "A" "C" "C" "B" "C" "A"
$Cat2
[1] "E" "B" "" "" "A" "C"
$Cat3
[1] "B" "" "" "" "" "F"
$Country
[1] "Canada" "India" "Canada" "Ireland" "India" "Canada"
$file_name
[1] "first" "Second" "third" "Fourth" "fifth" "Sixth"
所以,我有一种感觉,可以在内容之前拿到列的名称,并插入线在每个列条目之前。但是,我无法找到办法做到这一点。
你希望它被纵向打印文件输出?就像我们可以在控制台中看到的一样,或者像单独的文本文件中的每行一样好,列名如下?让我知道如果你想在下面的结果进行一些更改。 –
@ SowmyaS.Manian:我不希望他们像下面的答案那样成为表格的形式。实际上,我会将文本文件导入RQDA。所以,我需要将这些行依次打印,就像我在问题中所显示的一样。 – DotPi
@ SowmyaS.Manian:谢谢。有用。有没有办法像我在问题中显示的那样将其中一列中的数据用作文件名? – DotPi