这是一个非常基本的问题,但我正在努力解决它。我有一个主数据框,我根据特定列中的唯一值拆分成多个数据框。这是通过创建数据框列表,然后使用lapply函数将每个数据框保存为单独的csv文件来实现的(请参阅下面的代码)。
示例代码:
split_df <- split(df, df$ID)
u_ID <- unique(df$ID)
names(split_df) <- paste(u_ID)
lapply(names(split_df), function(x) write.csv(split_df[x], file= paste0(x, '_ID.csv')))
问题是输出csv文件中的列标题与主数据框中的列标题不同,即在下面的示例中,数据框被唯一ID值拆分,ID名称已添加到每个列标题中在拆分数据框中。我想在输出数据框中使用与我的主日期框架中相同的列标题。
示例数据:
ID Count Sp
1 A 23 1
2 A 34 2
3 B 4 2
4 A 4 1
5 C 22 1
6 B 67 1
7 B 51 2
8 A 11 1
9 C 38 1
10 B 59 2
dput:
structure(list(ID = c("A", "A", "B", "A", "C", "B", "B", "A",
"C", "B"), Count = c(23L, 34L, 4L, 4L, 22L, 67L, 51L, 11L, 38L,
59L), Sp = c(1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L)), .Names = c("ID",
"Count", "Sp"), class = "data.frame", row.names = c(NA, -10L))
使用上述代码的示例输出数据帧(csv文件):
$A
A.ID A.Count A.Sp
1 A 23 1
2 A 34 2
4 A 4 1
8 A 11 1
$B
B.ID B.Count B.Sp
3 B 4 2
6 B 67 1
7 B 51 2
10 B 59 2
$C
C.ID C.Count C.Sp
5 C 22 1
9 C 38 1
对于这个例子,我想最终得到包含列标题ID,Count和Sp的输出csv文件。任何解决方案将不胜感激!
答案 0 :(得分:2)
简单地使用它:
lapply(names(split_df), function(x) write.csv(split_df[[x]], file= paste0(x, '_ID.csv')))
注意split_df[[x]]
中的双方括号。