楼主: toby3003
1618 9

[问答] 数据整理问题,困扰好久求编程。。。谢谢 [推广有奖]

  • 3关注
  • 0粉丝

本科生

2%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
571 点
帖子
74
精华
0
在线时间
53 小时
注册时间
2012-4-18
最后登录
2019-1-3

楼主
toby3003 发表于 2014-5-5 10:06:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
idheightdate
10011752005/1/2
10021762005/1/3
10031772005/1/4
1004NA2005/1/5
10041792005/1/6
10051802005/1/7
10061812005/1/8
10071822005/1/9
10081842005/1/10
10081892005/1/11
1009NA2005/1/13
10091852005/1/12
10101872005/1/14
10111882005/1/15
10121892005/1/16
求筛选出,每个id号下最早一次、有记录的的信息。例如1004号要筛选出身高179而不是NA,多谢多谢
二维码

扫码加我 拉你入群

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

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

关键词:数据整理 Eight date 筛选出 ATE 记录 信息

沙发
吴海龙 在职认证  发表于 2014-5-5 15:24:16
m<-d#d是数据框,也就是产生数据的
d1<-d$id
k<-length(d1)
for (i in 1:(k-1)){
for (j in (i+1):k){
if (d1[i]==d1[j])
m<-m[-i,]
}
}
m

藤椅
toby3003 发表于 2014-5-5 18:42:56
吴海龙 发表于 2014-5-5 15:24
m
我试了一下,不能够得到我想要的结果呀,能继续帮我看看么,
id height      date
1  1001    175  2005/1/2
2  1002    176  2005/1/3
3  1003    177  2005/1/4
5  1004    179  2005/1/6
6  1005    180  2005/1/7
7  1006    181  2005/1/8
8  1007    182  2005/1/9
9  1008    184 2005/1/10
11 1009     NA 2005/1/13
12 1009    185 2005/1/12
14 1011    188 2005/1/15
15 1012    189 2005/1/16
1、1009没有筛选掉,2、我是想要(a有数据、b最早一次) 的记录。多谢~

板凳
toby3003 发表于 2014-5-5 18:44:43
吴海龙 发表于 2014-5-5 15:24
m
我试了一下,不能够得到我想要的结果呀,能继续帮我看看么,
id height      date
1  1001    175  2005/1/2
2  1002    176  2005/1/3
3  1003    177  2005/1/4
5  1004    179  2005/1/6
6  1005    180  2005/1/7
7  1006    181  2005/1/8
8  1007    182  2005/1/9
9  1008    184 2005/1/10
11 1009     NA 2005/1/13
12 1009    185 2005/1/12
14 1011    188 2005/1/15
15 1012    189 2005/1/16
1、1009没有筛选掉,2、我是想要(a有数据、b最早一次) 的记录。多谢~

报纸
complicated 在职认证  发表于 2014-5-5 19:05:56
说个思路吧,看楼主是能选择最早的,只是有NA存在,
data <- na.omit(data)
会把有空值的行删除,LZ试试?
密码被盗??

地板
toby3003 发表于 2014-5-5 19:28:39
complicated 发表于 2014-5-5 19:05
说个思路吧,看楼主是能选择最早的,只是有NA存在,
data
不行的呀,如果删除空值那么,同一年有两次数据的如id==1008怎么办呢

7
complicated 在职认证  发表于 2014-5-5 19:34:45
toby3003 发表于 2014-5-5 19:28
不行的呀,如果删除空值那么,同一年有两次数据的如id==1008怎么办呢
筛选逻辑用 min(date) 就行啊,这样只要不是同一天的,都能取到最小值
密码被盗??

8
jmpamao 发表于 2014-5-5 19:37:19
第一步,na.omit 去除NA
第二步,duplicated 去重复项

9
toby3003 发表于 2014-5-5 22:04:17
jmpamao 发表于 2014-5-5 19:37
第一步,na.omit 去除NA
第二步,duplicated 去重复项
请问,数据有的不重复的id号码的,也有height==NA的,要是先把NA去除了,那不就删掉有用的信息了?
我想问一下怎么能够把数据集中重复2次或多次的数据提取出来?(就是类似于计数那种的函数),多谢

10
jmpamao 发表于 2014-5-5 23:01:56
可以把多于2的重复项 找出来
  1. data[duplicated(data[,1])+duplicated(data[,1],fromLast=T)>0,]
复制代码

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

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