请教R从数据框里matlab 提取列向量向量

R中的列表(list)和数据框(data.frame)有什么区别? - 知乎32被浏览11008分享邀请回答
& data.frame(1:6, 1:3)
& data.frame(1:5, 1:3)
Error in data.frame(1:5, 1:3) :
arguments imply differing number of rows: 5, 3
矩阵、列表和数据框为新的数据框提供了尽可能多的变量,因为它们各自拥有列、元素或者变量。这就是灵活的地方了,这些不是向量的也能加,但是加入的时候会先把他们拆成相应的向量,然后一个个加。在一个个加的时候,依照上面的规则,核心还是只能加入一样长的向量。
& data.frame(1:6, data.frame(1:6, 7:12))
X1.6 X1.6.1 X7.12
& data.frame(1:6, matrix(1:12, ncol=2))
X1.6 X1 X2
& data.frame(1:6, matrix(1:12, nrow=2))
X1.6 X1 X2 X3 X4 X5 X6
& list(1:6, 7:12)
[1] 1 2 3 4 5 6
9 10 11 12
& data.frame(1:6, list(1:6, 7:12))
X1.6 X1.6.1 X7.12
R 导论,中文版本 0.1 ()?334 条评论分享收藏感谢收起131 条评论分享收藏感谢收起R语言学习(1)
& &在R语言里,通过函数c来建立一个向量。(注意:向量内的数据类型必须一致。)
& & example:a &- c(1,3,5,2,4,3,1,2,5)
2. 查看向量的类型
& &mode(向量名)
3.&查看向量的长度
& &通过length(向量名)来查看向量的查长度,注意length函数得到的是向量的长度,是向量中元素的个数,不是向量元素的长度。
4. 引用向量的元素
& &通过用向量名+[]来进行索引
5. 删除向量的元素
& & &通过对向量用[]来进行索引,在索引前加上负号即是删除向量的某些元素
6. 在向量中实现索引
& & a.用subset函数.在向量a中得到大于等于3的数
& & & subset函数的第一个参数是要索引的向量,第二个参数是索引条件。
& & b.将向量与另一个向量匹配
& & & 用match函数实现向量之间的匹配,match函数的第一个参数是被匹配的向量,第二个参数是匹配的向量,第三个参数是若不匹配输出的值。
& & c.判断向量中是否包含某些元素
& & & 使用向量运算符%in%来判断,如果存在输出TRUE,不存在输出FALSE。
7. 向量排序
& & a.将向量按数值进行排序
& & & sort函数将向量排序,输出排序后的向量。若要将向量降序排列可以在sort函数添加参数decreasing=TRUE。
& & b.将向量倒序排列
8. 去除向量中的重复项
9.向量与向量之间的一些重要操作
& & a.将向量与向量之间进行比较,将最大值取出组成新的向量
& & &b.向量求交集
& & & &intersect(a,b);
& & &c.向量求并集
& & & &union(a,b);
& & &d.向量求补集
& & & setdiff(a,b); & & 注意:setdiff输出的是属于第一个向量,但是不属于第二个向量的部分
10. 处理向量中缺失值的部分
& & &a.查看向量中是否存在缺失值
& & & &is.na(a); &any(is.na(a));
& & & &通过any可以直接得出向量中是否存在缺失值,若存在则返回TRUE,不存在则返回FALSE
& & &b.删除向量中的缺失值
& & & na.omit(a); &na.omit得到的是删除缺失值后的向量,以及缺失值在该向量中的索引。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2404次
排名:千里之外
原创:10篇
(3)(1)(2)(1)(1)(1)苹果/安卓/wp
积分 105, 距离下一级还需 40 积分
权限: 自定义头衔
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡, 显身卡下一级可获得
道具: 匿名卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
现有一个数据框X
A1 A2 A3 A4 2 3 6 2 4 4 5 3 5 2 4 7 6 3 4 4 2 7 6 1如果我们需要提取第1,3,5行数据形成一个新的数据框Y
A1 A2 A3 A4 2 3 6 2 5 2 4 7 2 7 6 1如果上面问题有好的答案,万分感激。
自己在编写时遇到如下问题(如能帮忙解决也特别感谢):
& && &在提取每一行时,数据都有属性A1,A2,A3,A4,比如:
A1 A2 A3 A4 2 3 6 2如何去除上面的属性从而只有下面的数值形成一个向量。
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
Y=X[c(1,3,5),]
v=as.vector(X[1,])
Y=X[c(1,3,5),]
v=as.vector(X[1,])
names(v)&-NULL
热心帮助其他会员
总评分:&经验 + 20&
<font color="#8463121 发表于
Y=X[c(1,3,5),]
v=as.vector(X[1,])
names(v)谢谢你的答案,正是我需要的,我还想问一下,如果我要统计一个数据框每列的元素之和(元素都是数值型),并且输出所有列中最大的前个3列的列名,有没有什么好的函数或者办法,希望能得到您的帮助,谢谢
zzp_1988 发表于
谢谢你的答案,正是我需要的,我还想问一下,如果我要统计一个数据框每列的元素之和(元素都是数值型), ...library(plyr)
cs=colSums(X)
colname=names(sort(cs,decreasing=TRUE))
colname[1:3]
zzp_1988 发表于
谢谢你的答案,正是我需要的,我还想问一下,如果我要统计一个数据框每列的元素之和(元素都是数值型), ...太感谢您了,但是Y=X[c(1,3,5),]这种方法得到的数据框Y比X多了一列熟悉row.name,如何把这个属性在生成的时候就去掉呢,而不是用Y$row.name&-NULL,希望能得到您的帮助
zzp_1988 发表于
谢谢你的答案,正是我需要的,我还想问一下,如果我要统计一个数据框每列的元素之和(元素都是数值型), ...太感谢您了,但是Y=X[c(1,3,5),]这种方法得到的数据框Y比X多了一列熟悉row.name,如何把这个属性在生成的时候就去掉呢,而不是用Y$row.name&-NULL,希望能得到您的帮助
zzp_1988 发表于
太感谢您了,但是Y=X[c(1,3,5),]这种方法得到的数据框Y比X多了一列熟悉row.name,如何把这个属性在生成的 ...那我也不太清楚
<font color="#8463121 发表于
那我也不太清楚您好,又要麻烦您了,我想问一下在一个list中,如何得到使其中三个属性同时满足一个属性值的新的list。
比如list:A:
& && && && & V1&&V2&&V3&&V4&&V5
& && && && &&&1& &0& &&&0& & 1& & 1
& && && && &&&0& &1& &&&1& & 0& & 1
& && && && &&&1& &0& &&&0& & 1& & 0
我们需要使属性V1=V4=1,如何得到
& && && && & V1&&V2&&V3&&V4&&V5
& && && && & 1& &0& &&&0& & 1& & 1
& && && && & 1& &0& &&&0& & 1& & 0
我使用A &- A[A[c(V1,V4)]==1,],得不到想要的list
如果使属性值不一样的情况如, V2=1, V4=0,得到
& && && && & V1&&V2&&V3&&V4&&V5
& && && && & 0& &1& &&&1& & 0& & 1
本帖最后由
22:48 编辑
A[A$V1==1&A$V4==1,]复制代码
热心帮助其他会员
总评分:&论坛币 + 5&
这个写的不错,很多人会遇到这个问题
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师苹果/安卓/wp
积分 50, 距离下一级还需 35 积分
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡, 显身卡下一级可获得
权限: 自定义头衔
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
悲催签到天数: 7 天连续签到: 1 天[LV.3]偶尔看看II
数据框提出一列之后,用as.vector()进行转换,但是class()判断的类型还是data.frame,这是为什么呢?
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
数据框DataFrame提出一列(假设名为OneColumn)之后,用DataFrame$OneColumn或者DataFrame[, "OneColumn"]或DataFrame[["OneColumn"]],在默认值drop=True情况下会自动退化为向量。如果用DataFrame["OneColumn"]则提取的为仅有OneColumn列的数据框,其实质仍为列表。
你这个问题叙述的不清楚。data frame中一列数字拿出来之后它的类型是numeric,既不是vector也不是data frame。
或者你对单独一列使用了as.vector()然后对整个数据使用class?这样不会影响数据整体的。
这种问题有一万种可能,比如某些数据是无法使用as.vector()的,你不贴上数据没人能回答,准确点说,你这样问,就是在要求别人把可能产生这种问题的所有情况都列出来,但是你要是贴上数据,别人可能看一下就知道哪里出问题了。
热心帮助其他会员
总评分:&论坛币 + 23&
转换后,应赋给新的变量,原来的变量不受转换影响。
如果从data.frame中提取一列,类型为因子,使用as.vector()转换后就变成向量了。
向量使用class()函数显示数据类型,如“character&,&numeric&等,不显示vector,在R语言中的运算都可视为向量运算,即便是单个值,所以没有必要再显示为vector类型。
热心帮助其他会员
总评分:&论坛币 + 20&
数据框DataFrame提出一列(假设名为OneColumn)之后,用DataFrame$OneColumn或者DataFrame[, &OneColumn&]或DataFrame[[&OneColumn&]],在默认值drop=True情况下会自动退化为向量。如果用DataFrame[&OneColumn&]则提取的为仅有OneColumn列的数据框,其实质仍为列表。
列名&-data.frame$列名
,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师

我要回帖

更多关于 matlab 提取向量元素 的文章

 

随机推荐