将表转换为向量以在r上使用hist()

时间:2012-12-07 12:04:36

标签: r vector

我现在正在学习一些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)lapply(c(data), as.numeric)之类的不同内容,但没有任何作用。

你能帮我一把吗?

已解决:取消列表(数据)
PS:由于我的表格有100(cols)* 5000(行)

,因此预计不起作用

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

as.numeric(as.matrix(data))会这样做。不是特别的。优雅!另外,请注意调用您的数据和数据。您可以使用str(data)查看数据的结构。但是,read.table会返回data frame

unlist(data)的答案相比,此方法无法获得自动构造的变量名称(V1 ... Vn)。