楼主: Y1kotaya
7135 10

[问答] 从数据框中筛选某些行 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

大专生

18%

还不是VIP/贵宾

-

威望
0
论坛币
30 个
通用积分
2.8978
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
310 点
帖子
32
精华
0
在线时间
28 小时
注册时间
2019-7-1
最后登录
2020-12-1

楼主
Y1kotaya 发表于 2019-7-5 20:44:36 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
企业微信截图_15623283179682.png 第一列是车牌号 第二列是过车时间  如果车牌号在这个数据框中出现了两次  就把这两行数据筛选出来  应该怎么写啊
二维码

扫码加我 拉你入群

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

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


沙发
觅寄忧谷 发表于 2019-7-6 12:35:43
你的数据我没法费力打一遍,但是我自己编了一个类似的例子,但是道理和你一样,我的数据是:
> 车辆<-c("A","C","H","E","B","C","E","G","F","H")
> 观测数据<-runif(10,min=1,max=2)
> example_car<-data.frame(车辆,观测数据)
A,B,C...等表示车辆,后面生成了1-2之间均匀分布的10个随机数作为你的时间列,这样整合成的数据框example_car就和你的原题类似了,也就是如下:
车辆 观测数据
1     A 1.619539
2     C 1.043553
3     H 1.737147
4     E 1.174920
5     B 1.451731
6     C 1.573667
7     E 1.499189
8     G 1.560143
9     F 1.620255
10    H 1.453784
由于需要看谁进场了两次,需要进行频数统计,使用table函数,即
x<-table(example_car$车辆)
此时的x值如下
A B C E F G H
1 1 2 2 1 1 2
为了保持一致,我们把x转化成数据框,即
x<-as.data.frame(x)
此时的x就是很熟悉的一种形式了:
Var1 Freq
1    A    1
2    B    1
3    C    2
4    E    2
5    F    1
6    G    1
7    H    2
下一步需要在生成的频数数据框x和原数据框examp_car中搭建可以共同的桥梁,共同变量是车辆,我们先把x的第一列名称改为车辆以求统一,即
names(x)[1]<-"车辆"
此时的x形式为
车辆 Freq
1    A    1
2    B    1
3    C    2
4    E    2
5    F    1
6    G    1
7    H    2
现在就可以使用merge函数进行合并了,merge(x,y,by=)中,x,y为两个数据框,by是靠什么整合在一起,因此本例中:
example_car1<-merge(example_car,x,by="车辆")
整合后的example_car1为
车辆 观测数据 Freq
1     A 1.210787    1
2     B 1.919810    1
3     C 1.458615    2
4     C 1.639834    2
5     E 1.747508    2
6     E 1.905324    2
7     F 1.285928    1
8     G 1.539241    1
9     H 1.398195    2
10    H 1.669576    2
最后一步就是很简单的把Freq为2的筛选出来就好了,即
example_car1[example_car1$Freq==2,]
[  ]中“,”之前表示行,后面表示列,列为空表示全部列,行为example_car1$Freq==2表示筛选出Freq=2的行,最终的example_car1就是结果,如下所示
车辆 观测数据 Freq
3     C 1.458615    2
4     C 1.639834    2
5     E 1.747508    2
6     E 1.905324    2
9     H 1.398195    2
10    H 1.669576    2

上述代码亲测有效,不明白可以给我发邮件,mijiyougu@163.com(觅寄忧谷的拼音)
希望能帮到你!
已有 2 人评分论坛币 收起 理由
cheetahfly + 10 精彩帖子
jiangbeilu + 15 精彩帖子

总评分: 论坛币 + 25   查看全部评分

藤椅
5752 发表于 2019-7-6 21:32:05
df %>% group_by(车牌) %>% summarise(n=n()) %>% filter(n=2)
已有 2 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员
jiangbeilu + 10 精彩帖子

总评分: 论坛币 + 20   查看全部评分

板凳
wangfs111222 发表于 2019-7-7 12:06:48
duplicated
已有 1 人评分论坛币 收起 理由
jiangbeilu + 5 精彩帖子

总评分: 论坛币 + 5   查看全部评分

报纸
jiangbeilu 学生认证  发表于 2019-7-7 13:25:15
wangfs111222 发表于 2019-7-7 12:06
duplicated
如果是人家只要两次,不要三次的,duplicated就不太好用了哈

地板
Y1kotaya 发表于 2019-7-7 16:11:56
觅寄忧谷 发表于 2019-7-6 12:35
你的数据我没法费力打一遍,但是我自己编了一个类似的例子,但是道理和你一样,我的数据是:
> 车辆 观测数 ...
您好  太感谢了  只是 关于两个数据框的整合那部分 用的函数
不知道为什么 看不到   
您是否可以再说一下那个函数呢

7
Y1kotaya 发表于 2019-7-7 16:14:03
觅寄忧谷 发表于 2019-7-6 12:35
你的数据我没法费力打一遍,但是我自己编了一个类似的例子,但是道理和你一样,我的数据是:
> 车辆 观测数 ...
是不是merge(data1,data2,by=相同列)

8
Y1kotaya 发表于 2019-7-7 17:20:57
5752 发表于 2019-7-6 21:32
df %>% group_by(车牌) %>% summarise(n=n()) %>% filter(n=2)
谢谢!

9
Y1kotaya 发表于 2019-7-7 17:21:00
5752 发表于 2019-7-6 21:32
df %>% group_by(车牌) %>% summarise(n=n()) %>% filter(n=2)
谢谢!

10
Y1kotaya 发表于 2019-7-7 17:21:01
5752 发表于 2019-7-6 21:32
df %>% group_by(车牌) %>% summarise(n=n()) %>% filter(n=2)
谢谢!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-7 22:37