6

这几天我正在学习一些 R,我在一个文件中有一些数据:

0.7300719696546073 0.5508739992014652 0.2371535688287479
0.9359803887798046 0.8249035576959065 0.3715476175169042
0.3403916445508408 0.8036890953987708 0.8079012937499597

就像那样......(但更大)

data = read.table("data.txt")

在某些操作中,我希望将所有数据放在一个向量上以供使用hist(data) ,但我得到:'x' must be numeric

我尝试了不同的东西,例如as.vector(data)orlapply(c(data), as.numeric)但没有任何效果。

你能帮我一把吗?

已解决:unlist(data)
PS:预计不起作用,因为我有一个 100(cols)*5000(rows) 的表

4

2 回答 2

10
unlist(data)

会成功的。这是将数据框转换为向量的简单方法。


使用您的数据:

data <- read.table(text="
0.7300719696546073 0.5508739992014652 0.2371535688287479
0.9359803887798046 0.8249035576959065 0.3715476175169042
0.3403916445508408 0.8036890953987708 0.8079012937499597")

unlist(data)

结果是一个向量(带有命名元素):

      V11       V12       V13       V21       V22       V23       V31       V32       V33 
0.7300720 0.9359804 0.3403916 0.5508740 0.8249036 0.8036891 0.2371536 0.3715476 0.8079013 

如果您不想拥有名称,请使用以下use.names = FALSE参数unlist

unlist(data, use.names = FALSE)

[1] 0.7300720 0.9359804 0.3403916 0.5508740 0.8249036 0.8036891 0.2371536 0.3715476 0.8079013
于 2012-12-07T12:09:39.107 回答
2

as.numeric(as.matrix(data))会做的。不是特别是。优雅的!另外,在调用你的数据时要小心,数据。您可以使用它str(data)来查看数据的结构。但是,read.table返回一个data frame.

与 的答案相比unlist(data),此方法不会为您提供自动构造的变量名称(V1...Vn)。

于 2012-12-07T12:12:04.183 回答