R 将处理后的多个文件合并到一个数据帧中,并为每个colname指定文件名
我有一个文件列表,我编写了一个函数来处理每个文件并返回两列(“name”和“value”) 预期产出:R 将处理后的多个文件合并到一个数据帧中,并为每个colname指定文件名,r,R,我有一个文件列表,我编写了一个函数来处理每个文件并返回两列(“name”和“value”) 预期产出: Apple Pear A 12 15 B 13 14 C 14 20 你可以试试 fns <- c("apple.txt", "pear.txt") (df <- Reduce(function(...) merge(..., all=F), lapply( seq(fns), function(x) {
Apple Pear
A 12 15
B 13 14
C 14 20
你可以试试
fns <- c("apple.txt", "pear.txt")
(df <-
Reduce(function(...) merge(..., all=F),
lapply(
seq(fns), function(x) {
read.table(fns[x],
header=TRUE,
col.names = c("name",
tools::file_path_sans_ext(fns)[x]))
})
)
)
# name apple pear
# 1 A 12 15
# 2 B 13 14
# 3 C 14 20
(参见子部分)
要去掉name
列,可以使用subset(df,select=-name)
您可以只cbind
这两个数据帧,但这将假定行排列完全正确。另一个选项是将name
列上的两个数据帧merge()。
Apple Pear
A 12 15
B 13 14
C 14 20
fns <- c("apple.txt", "pear.txt")
(df <-
Reduce(function(...) merge(..., all=F),
lapply(
seq(fns), function(x) {
read.table(fns[x],
header=TRUE,
col.names = c("name",
tools::file_path_sans_ext(fns)[x]))
})
)
)
# name apple pear
# 1 A 12 15
# 2 B 13 14
# 3 C 14 20
sub("\\b(\\w)", "\\U\\1", fns, perl=TRUE)