我现在正在学习一些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(行)
答案 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)。