操纵数据以在R中创建向量

时间:2015-01-15 07:55:46

标签: r vector

我试图将数据操作为允许我轻松创建向量的表单,但是我遇到了一些问题。

我有像这样复制到R的数据:

enter image description here

为了简单起见,我只使用前十个数字,这样我就有以下内容:

1
4
1
7
1
1
3
4
5
2

我想创建一个包含这些数字的向量,如下所示:

greatVector <- c(1, 4, 1, 7, 1, 1, 3, 4, 5, 2)

然而,我只能通过手动输入每个逗号并按下退格键来正确定位下一个数字。

有没有更简单的方法来实现这一目标?提前谢谢。

3 个答案:

答案 0 :(得分:4)

您可以尝试scan

scan('file.txt',  what=numeric(), quiet=TRUE)
#[1] 1 4 1 7 1 1 3 4 5 2

答案 1 :(得分:4)

@akrun提到了scan文件输入,但它也可以用来直接从控制台输入数据。在控制台键入此内容并复制由回车符或空格分隔的数据:

 vec <- scan()
1: 1      # the numbers by the side are only printed upon data entry
2: 4
3: 1
4: 7
5: 1
6: 1
7: 3
8: 4
9: 5
10: 2
11:     # an empty line terminates data entry
Read 10 items
> vec
 [1] 1 4 1 7 1 1 3 4 5 2

如果what参数设置为""character(0)

,也可以输入字符值
vec_a <- scan(what="")

答案 2 :(得分:0)

您可以尝试将R控制台中显示的文本复制并粘贴到read.table指令中,如下所示:

greatVector<-unlist(read.table(text="1
4
1
7
1
1
3
4
5
2",header=F,sep="\n"))

> greatVector
 V11  V12  V13  V14  V15  V16  V17  V18  V19 V110 
   1    4    1    7    1    1    3    4    5    2

正如@akrun所提到的,你也可以使用scan指令,也可以复制和粘贴文本:

greatVector<-scan(text="1
4
1
7
1
1
3
4
5
2",what=numeric(),sep="\n")

> greatVector
 [1] 1 4 1 7 1 1 3 4 5 2