使用拆分功能拆分数据框后重命名列标题 [英] Renaming column headers after splitting data frames with split function

查看:17
本文介绍了使用拆分功能拆分数据框后重命名列标题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是一个非常基本的问题,但我正在努力解决它。我有一个主数据框,我基于特定列中的唯一值将其拆分成多个数据框。这是通过创建数据帧列表,然后使用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文件结束。任何解决方案都将不胜感激!

推荐答案

简单使用:

lapply(names(split_df), function(x) write.csv(split_df[[x]], file= paste0(x, '_ID.csv')))

请注意split_df[[x]]中的双方括号。

这篇关于使用拆分功能拆分数据框后重命名列标题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆