将一列附加到多个 csv 文件中,每行包含一个常量
Posted
技术标签:
【中文标题】将一列附加到多个 csv 文件中,每行包含一个常量【英文标题】:Appending a column to multiple csv files that contains a constant in each row 【发布时间】:2022-01-13 21:47:01 【问题描述】:我正在尝试编写一个脚本,对包含 csv 文件列表的变量执行以下序列:
-读取每个 csv 文件
-向每个 csv 附加一列,标题为“维度类型”,其中新列中的每一行都包含第一列中标题的名称
-将第一列的标题重命名为“维度”
-合并所有的 csv 文件
-将合并后的 csv 文件导出为 excel 文件
所有 csv 文件的结构都相同,但第一列的标题除外,它是维度类型的名称
我使用 list.files 函数创建了包含 csv 文件列表的变量,并且我有一个目录,我想在其中存储存储在变量中的 excel 文件。
【问题讨论】:
我必须在我的 csv 列表中使用 lapply 和 read.csv 才能使函数正常工作。否则,您的功能将完美运行。谢谢! 下一次,您应该发布您在问题中尝试过的代码。 ***.com/questions/5963269/… 请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:这样的东西会起作用吗?因为我没有你的数据,所以我只是做了一些快速的数据集。 (编辑为包括在列表中使用它)
df1 <- data.frame(dtype1 = sample(letters, 25, replace = TRUE),
col1 = sample(1:10, 25, replace = TRUE),
col2 = sample(5000:10000, 25))
df2 <- data.frame(dtype2 = sample(letters, 25, replace = TRUE),
col1 = sample(1:10, 25, replace = TRUE),
col2 = sample(5000:10000, 25))
df.list <- list(df1,df2)
SO_function <- function(df)
df$`Dimension Type` <- colnames(df)[1]
colnames(df)[1] <- "Dimension"
return(df)
# apply to list
df.list_want <- lapply(df.list, SO_function)
# or apply to individual df's
df1.want <- SO_function(df1)
df2.want <- SO_function(df2)
#> head(df1.want, 5)
# Dimension col1 col2 Dimension Type
#1 t 7 5921 dtype1
#2 r 4 5772 dtype1
#3 d 1 6722 dtype1
#4 u 2 8750 dtype1
#5 f 2 9778 dtype1
#> head(df2.want, 5)
# Dimension col1 col2 Dimension Type
#1 k 5 5882 dtype2
#2 c 8 6237 dtype2
#3 f 6 6484 dtype2
#4 d 4 8504 dtype2
#5 i 7 7022 dtype2
【讨论】:
以上是关于将一列附加到多个 csv 文件中,每行包含一个常量的主要内容,如果未能解决你的问题,请参考以下文章