楼主: liuweivvid
12474 6

[问答] R语言提取数据框中的特定行 [推广有奖]

  • 0关注
  • 0粉丝

高中生

55%

还不是VIP/贵宾

-

威望
0
论坛币
1553 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
163 点
帖子
18
精华
0
在线时间
28 小时
注册时间
2014-12-6
最后登录
2016-10-2

楼主
liuweivvid 发表于 2016-6-9 16:50:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
data是原数据框。
我将提取符合 dis == 1.5, angle == -16, di_hum == 1.85 和 class == stand的行。
代码如下
stand1.5 <- data[data$dis == 1.5 & data$angle == -1.6 & data$di_hum == 1.85 & data$class == "stand",]
QQ图片20160609164714.png
这样将前100行和1800行后的某些行合并起来了,但是新的数据框最左边的 列数只是简单的把原数据框的拼在了一起(如图)

我想新的数据框重新从1排列这些列数应该怎么做呢?

谢谢~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言 数据框 stand Angle STAN angle stand

沙发
liuweivvid 发表于 2016-6-9 16:52:15
手误!应该是行数!写成列数了....

藤椅
ly_0 发表于 2016-6-9 17:23:21
先对这列排序,取他们的序号,再把序号放到数据框里,删除原序号列。。。(我也是新手,只想到这个办法。。。)
> test
   x y
1  1 a
2  5 b
3  7 c
4  9 d
5 10 e
> no <- rank(test[1])
> no
   x <NA> <NA> <NA> <NA>
   1    2    3    4    5
> test1 <- cbind(test,no)
> test1
   x y no
1  1 a  1
2  5 b  2
3  7 c  3
4  9 d  4
5 10 e  5
> test <- test1[c(3,2)]
> test
  no y
1  1 a
2  2 b
3  3 c
4  4 d
5  5 e

板凳
liuweivvid 发表于 2016-6-9 17:38:18
ly_0 发表于 2016-6-9 17:23
先对这列排序,取他们的序号,再把序号放到数据框里,删除原序号列。。。(我也是新手,只想到这个办法。。 ...
rank是取序号的函数吗?

报纸
liuweivvid 发表于 2016-6-9 17:41:51
ly_0 发表于 2016-6-9 17:23
先对这列排序,取他们的序号,再把序号放到数据框里,删除原序号列。。。(我也是新手,只想到这个办法。。 ...
我感觉rank好像是一个排列向量中元素大小的函数。
而且兄弟的这个方法是添加了新的一列来表示行数,我想最好是能把R数据框自己本身的行数改变。
还是感谢~

地板
ly_0 发表于 2016-6-9 17:43:31
嗯,关于排序的函数可以去搜索sort()、rank()、order()看详解

7
liuweivvid 发表于 2016-6-9 18:08:23
ly_0 发表于 2016-6-9 17:43
嗯,关于排序的函数可以去搜索sort()、rank()、order()看详解
按照你的添加列来表示行数的思路,我想到新的方法
> nrow(leandown)
[1] 2700
> a <- c(1:2700)
> leandown$no <- a

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 14:08