我有一个大的data.frame,包含整数,字符和字符串列。我需要通过数字列对data.frame进行排序。
当我将原始列组合到data.frame中时,所有列都会更改为factor,包括排序所需的列。因此,排序会提供类似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)), ]
我该如何解决这个问题?
答案 0 :(得分:1)
其实你需要这样做:
d <- data.frame(a, b, c, stringsAsFactors=FALSE)
最后一部分stringsAsFactors=FALSE
会阻止列d$c
转换为因子。包含它,你的字符串将保留为字符串。
别忘了stringsAsFactors=FALSE
- 它会拯救你无尽的痛苦,相信我!