1

我有一个混合了整数、字符和字符串列的大 data.frame。我需要按数字列对 data.frame 进行排序。

当我将原始列合并到 data.frame 中时,所有列都更改为因子,包括排序所需的列。所以排序给出了类似的东西1, 10, 100...而不是1, 2, 3...

这是我的问题的一个例子。

a <- 1:10
b <- c(1,3,5,6,2,10,100,110,7,4)
c <- LETTERS[1:10]
d <- as.data.frame(cbind(a, b, c))  # I am using this construction
e <- d[with(d, order(b)), ]

我怎样才能解决这个问题?

4

1 回答 1

1

其实你需要这样做:

d <- data.frame(a, b, c, stringsAsFactors=FALSE)

最后一部分stringsAsFactors=FALSE防止将列d$c转换为因子。包含它,您的字符串将保留为字符串。

别忘了stringsAsFactors=FALSE——它会为你省去无尽的痛苦,相信我!

于 2012-06-07T03:03:01.287 回答