找回密码
 立即注册
查看: 6338|回复: 8

R语言如何将多个数组组成的矩阵合为一个vector?

[复制链接]
发表于 2017-3-21 05:07:55 | 显示全部楼层 |阅读模式
我有一组数据,只有一列,但每一行都含有不只一个用逗号隔开的数据(全部是数字)例如,
捕获.PNG
请问我怎样才能才能将这些数据合成一个vector,形如 (5027, 5153, 148, 80271, 8877, 2185, 5724 ... 7040, 7538, 1856, 5971, 5155, 3135, 1958, 3601, 2114, 83660)?



回复

使用道具 举报

发表于 2017-3-21 11:14:38 | 显示全部楼层
循环 合并vector
回复

使用道具 举报

 楼主| 发表于 2017-3-23 05:20:08 | 显示全部楼层

能否讲一下具体的code要怎么写,或者该用哪个函数呢?我试过c、cbind都不行
回复

使用道具 举报

发表于 2017-3-28 11:10:14 | 显示全部楼层
你这不是matrix吧,不知道咋生成的,c(a,b)可以直接把A,B两个vector合并起来啊,是要这样吗
回复

使用道具 举报

发表于 2017-4-5 12:40:33 | 显示全部楼层
矩阵的行或列的长度都是对应相等的,不存在这一列长那一列短,这一行长,那一行短,你可以创建一个全部为零的矩阵,然后将现在的数据赋值给这建的矩阵,当然,结果是长度不足的都补零了。

要不就是数据框或者列表等等对象才允许你长度不一样的多个向量存在。
回复

使用道具 举报

 楼主| 发表于 2017-4-15 04:58:08 | 显示全部楼层
惆牵梦 发表于 2017-3-28 11:10
你这不是matrix吧,不知道咋生成的,c(a,b)可以直接把A,B两个vector合并起来啊,是要这样吗

这可能确实不是matrix吧,而是excel表。组合的问题就是excel是空格分隔的,而每行的各个元素之间是逗号分隔的,相当于是一列,每列有不等量个元素。所以我不知道要怎么合并。另外用c是不行的,因为用c的话就必须给每一行都赋一个名称,但是我这个表有几千行,根本不可能手动操作。所以想请教下批量操作要怎么写程序。
回复

使用道具 举报

 楼主| 发表于 2017-4-15 04:59:28 | 显示全部楼层
R探索者 发表于 2017-4-5 12:40
矩阵的行或列的长度都是对应相等的,不存在这一列长那一列短,这一行长,那一行短,你可以创建一个全部为零 ...

能否教一下用数据框或列表怎么写呢?我不是很会R。谢谢!
回复

使用道具 举报

发表于 2017-4-21 15:01:17 | 显示全部楼层
fusca 发表于 2017-4-15 04:58
这可能确实不是matrix吧,而是excel表。组合的问题就是excel是空格分隔的,而每行的各个元素之间是逗号分 ...

另存为yourfile.csv,你读取文件的时候用
mymatrix=read.csv(file="yourfile.csv")
###会自动变成所有列一样长的data.frame,长度不够的自动填充NA.
myvector=c()
for (i in length(a)){myvector=c(myvector,a)}
myvector


回复

使用道具 举报

发表于 2017-5-29 01:48:16 | 显示全部楼层
fusca 发表于 2017-4-15 04:59
能否教一下用数据框或列表怎么写呢?我不是很会R。谢谢!

抱歉,平时太忙,没机会上来看。在R里面的“列表”对象,其实是一个特殊的向量(vector),却别在于它的每一个元素可以是不同的类型。
比如说新建一个新的“列表”对象:
_list <- list()
你可以在_list中放入任何类型的对象,比如在第一位放一个字符串:newlist[[1]] <- "my list" (通常用双中括号来访问list中的对象)
而在第二位放一个向量:newlist[[2]] <- c('l','i','s','t');在第三位放一个列表:newlist[[3]] <- list("my new list")
而“数据框”对象,它也可以说是一个特殊的列表,因为它要求对象的每个元素的长度相同,在平面上看就跟excel里面圈出多少行多少列一样(注意,是对象的元素长度相同,至于对象的元素的下层元素,甚至下下层元素,就没有限制了)。
我也是初学者,如果说得不对,欢迎回复探讨!


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 09:38 , Processed in 0.026345 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表