【发布时间】:2020-02-26 17:56:24
【问题描述】:
我想在数据框列表中的每个数据框末尾添加一行。在此示例中,我想将列名作为新行添加到由group_split 创建的数据框列表中每个数据框的底部。
library(dplyr)
col_names1 <- as.data.frame(t(as.data.frame(colnames(iris))))
colnames(col_names1) <- unlist(col_names1[1, ])
rownames(col_names1) <-""
iris %>%
group_split(Species) %>%
bind_rows(col_names1) #errors out: Error: Column `Sepal.Length` can't be converted from numeric to factor
我想最终得到一个数据框列表,每个数据框的列名作为列表中每个数据框底部的新行。
【问题讨论】:
-
“将列名添加为新行” 会将您的所有数据更改为
character,因此不再有数字。这就是你想要的吗? -
你是对的,它会的,但没关系。
-
也许您想要数据的表示,而不是数据的存储方式?例如,显示
data.table::as.data.table(x)通常会显示数据下方的列名以及超过 20 行时数据上方的列名。 -
@r2evans 实际上这是用于输出到作为报告的 excel 文件中,因此不适用于 R 中的任何分析 - 因此列类型并不重要,也与演示无关。话虽如此,我不知道
as.data.table()会显示这样的数据,太好了!