所以我得到了以下数据框,datafr。
X1 X2 X1.1 X2.1
Composite Element Composite Element
14-3-3_epsilon-M-C -0.8660101895 14-3-3_epsilon-M-C -0.6814387425
4E-BP1_pS65-R-V 0.1056560215 4E-BP1_pS65-R-V 0.1787506005
4E-BP1_pT37T46-R-V 0.6408257495 4E-BP1_pT37T46-R-V -0.7485933875
4E-BP1_pT70-R-C 0.6413568085 4E-BP1_pT70-R-C 0.9554481415
我想让第二行成为列名,所以我看一下
行datafr[1,]
一切都应该是
X1 X2 X1.1 X2.1
Composite Element Composite Element
但是,当我将其转换为字符向量时,我会将单词更改为数字...
as.character(c(datafr[1,]))
[1] "49" "161" "49" "161"
发生了什么事?
答案 0 :(得分:4)
问题是你的data.frame列不是字符而是因素(请参阅R介绍中的差异。)
你必须这样做:
as.character(unlist(datafr[1, ]))
从当前数据中获取字符向量。但是,您可能希望在代码中上游修复问题:
您可以尝试确保您的data.frame首先不包含因素。大多数情况下,这是通过向stringsAsFactors = FALSE
,data.frame
,as.data.frame
,read.table
等函数添加read.csv
来完成的。如果您在某个地方使用read.table
,我强烈建议您首先使用header = TRUE
来获取您想要的字母名称。