【发布时间】:2015-07-15 04:52:45
【问题描述】:
我有一个 data.frame,所有列都是数字。我想将一个整数列转换为因子,但这样做会将所有其他列转换为类字符。无论如何只将一列转换为因子?
例子来自Converting variables to factors in R:
myData <- data.frame(A=rep(1:2, 3), B=rep(1:3, 2), Pulse=20:25)
myData$A <-as.factor(myData$A)
结果
apply(myData,2,class)
# A B Pulse
# "character" "character" "character"
sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] splines stats graphics grDevices utils datasets methods base ...
str(myData$A)
# Factor w/ 2 levels "1","2": 1 2 1 2 1 2
【问题讨论】:
-
为我工作。你的
sessionInfo()是什么? -
这似乎不太可能。您提供的代码是否真的为您重现了问题?
-
我唯一知道发生这种情况的是
myData是矩阵、数组或向量,而不是数据帧。你确定class(myData)是一个数据框(对于导致你出现问题的任何数据)? -
class(myData)是data.frame。apply(myData,2,class)产生 A B 脉冲“字符”“字符”“字符” -
@Pascal
sessionInfo()给R version 3.1.2 (2014-10-31) Platform: x86_64-apple-darwin13.4.0 (64-bit) locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] splines stats graphics grDevices utils datasets methods base ...
标签: r