应该很容易,但我无法做到。 我有很多文件,每个文件都按物种名称命名。我还有一个数据框,其中每列都以物种名称命名。我只是想从数据框中提取列,并在更改列名后将该列与相应的物种文件组合,比如说,'Common'可能在循环中,以便稍后比较colud比较所有物种。
Df的:
ID Tilia_americana Fraxinus_americana Ulmus_americana
1 23 32 32
2 21 34 35
3 20 33 32
4 19 33 36
5 23 23 34
6 22 34 37
抱歉,因为之前不具体。正如您所看到的,列名称是物种名称,此外,我还有三个具有物种名称的独立文件。第一个文件的标题是这样的:
Tilia_americana:
ID Wie Rei Wee
1 2 4 3
2 4 3 4
3 3 2 5
4 5 5 2
5 6 3 4
6 7 4 3
从DF中提取Tilia_american列并将列名更改为'Common'并将其与Tilia_american文件组合后,输出应该是这样的:
ID Wie Rei Wee Common
1 2 4 3 23
2 4 3 4 21
3 3 2 5 20
4 5 5 2 19
5 6 3 4 23
6 7 4 3 22
最后想要保存每个文件...谢谢
答案 0 :(得分:1)
您可以使用类似
的物种文件列表files <- list.files( pattern = ".txt" )
假设这些文本文件的扩展名为.txt
,并且该文件夹中没有其他文本文件。
用
species <- gsub( ".txt", "", files )
您可以删除该扩展程序,然后在Common
data.frame中列出您的列名。
你现在可以构建一个循环(可能有更好的方法,比如lapply ......):
for( i in 1:length( files ) )
{
x <- read.table( files[i], header = TRUE )
x <- cbind( x, Common[ colnames( Common ) == species[i] ] )
write.table( x, files[i], row.names = FALSE )
}
希望这能让你开始!