【发布时间】:2020-05-21 13:03:07
【问题描述】:
我的数据如下:
library(data.table)
DF <- structure(list(toberevised = c("Number of returns", "Number of joint returns",
"Number with paid preparer's signature"), `SOUTH DAKOTA_All returns` = c(135257620,
52607676, 80455243), `SOUTH DAKOTA_Under_50000` = c(92150166,
20743943, 53622647)), row.names = c(NA, -3L), class = c("data.table",
"data.frame"))
我想将第一列作为变量,并将变量放在一列中,所以我这样做了:
DF<- as.data.frame(t(DF))
setnames(DF, DF[1,])
然后我得到错误:
Passed a vector of type 'list'. Needs to be type 'character'
我已经尝试了所有我能想到的取消列表的方法,但无济于事。
我在这里做错了什么?
【问题讨论】:
-
试试
unlist(DF[1,])。所以应该这样做setNames(DF, unlist(DF[1,])) -
想要的输出不清楚,但我猜是
transpose(DF, make.names = "toberevised"),其中'DF'是原始DF。 -
@Sotos
setNames(DF, unlist(DF[1,]))成功了!只是以某种方式取消上市并没有。知道是什么原因造成的吗? -
@Henrik 我在使用您的解决方案时遇到错误。
Error in transpose(DF, make.names = "toberevised") : unused argument (make.names = "toberevised") -
哦...好吧,您不能真正取消列出某些内容并将其保存在数据框中。请记住,数据框是列表
标签: r dataframe matrix transpose