将列表更改为As.Numeric

时间:2013-01-08 21:53:02

标签: r list

我在互联网上找到了(x,y)表格式的一些数据,我想将它简单地用于t检验。我从互联网上复制并粘贴,在R

上看起来像这样
20.79  194.5  23.89  200.9  28.49  209.5 
20.79  194.3  23.99  201.1  27.76  208.6 
22.40  197.9  24.02  201.4  29.04  210.7 
22.67  198.4  24.01  201.3  29.88  211.9 
23.15  199.4  25.14  203.6  30.06  212.2 
23.35  199.9  26.57  204.6

我想把它变成一个data.frame,其中第一列(主要是20的值)是x,第二列(值为190-220)是y 。我玩过它,但是目前我被列入了一个列表,当我尝试

   as.numeric(mylist)

它给我一条错误信息,内容为

"Error: (list) object cannot be coerced to type 'double' "

2 个答案:

答案 0 :(得分:1)

有时,使用scan读取数字元素然后根据序列的顺序将它们配置为矩阵很有用。

> inp <- scan(text="20.79  194.5  23.89  200.9  28.49  209.5 
+ 20.79  194.3  23.99  201.1  27.76  208.6 
+ 22.40  197.9  24.02  201.4  29.04  210.7 
+ 22.67  198.4  24.01  201.3  29.88  211.9 
+ 23.15  199.4  25.14  203.6  30.06  212.2 
+ 23.35  199.9  26.57  204.6")
Read 34 items
> M.in <- matrix(inp, ncol=2, byrow=TRUE)
> M.in
       [,1]  [,2]
 [1,] 20.79 194.5
 [2,] 23.89 200.9
 [3,] 28.49 209.5
 [4,] 20.79 194.3
 [5,] 23.99 201.1
 [6,] 27.76 208.6
 [7,] 22.40 197.9
 [8,] 24.02 201.4
 [9,] 29.04 210.7
[10,] 22.67 198.4
[11,] 24.01 201.3
[12,] 29.88 211.9
[13,] 23.15 199.4
[14,] 25.14 203.6
[15,] 30.06 212.2
[16,] 23.35 199.9
[17,] 26.57 204.6

现在你可以做到:

> t.test(M.in[,1], M.in[,2])

    Welch Two Sample t-test

data:  M.in[, 1] and M.in[, 2] 
t = -112.7824, df = 24.18, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -181.1483 -174.6400 
sample estimates:
mean of x mean of y 
 25.05882 202.95294 

您可以使用as.data.frameM.in转换为数据框。)如果您确信将这些文件分成六个一组,则可以使用以下方法访问它们:

first6 <- M.in[ 1:6, ]

答案 1 :(得分:0)

您可以直接将文字传递给read.table;复杂的是,由于缺少值,您还需要fill=NA

d <- read.table(text="20.79  194.5  23.89  200.9  28.49  209.5 
20.79  194.3  23.99  201.1  27.76  208.6 
22.40  197.9  24.02  201.4  29.04  210.7 
22.67  198.4  24.01  201.3  29.88  211.9 
23.15  199.4  25.14  203.6  30.06  212.2 
23.35  199.9  26.57  204.6", fill=NA)
names(d)[1:2] <- c("x", "y")

#       x     y    V3    V4    V5    V6
# 1 20.79 194.5 23.89 200.9 28.49 209.5
# 2 20.79 194.3 23.99 201.1 27.76 208.6
# 3 22.40 197.9 24.02 201.4 29.04 210.7
# 4 22.67 198.4 24.01 201.3 29.88 211.9
# 5 23.15 199.4 25.14 203.6 30.06 212.2
# 6 23.35 199.9 26.57 204.6    NA    NA