全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2229 4
2018-04-09
数据量比较大,这里简单罗列了一些行,希望是把point=1的行和该行前后各100行的数据抓取出来并建立新的数据框(point=1数量很少,可以忽略重叠的情况)各位大神帮忙看一看
      time  value point
1       0.00 1.0738     0
2       0.01 1.0738     0
3       0.02 1.0661     0
....
600       0.04 1.0687     0
601       0.05 1.0738     0
602       0.06 1.0763     0
603       0.07 1.0738    0
604       0.08 1.0738     1
605      0.09 1.0789     0
606      0.10 1.0661     0
607      0.11 1.0712     0
...   
1698      0.13 1.0738     0
1699      0.14 1.0687     1
1700      0.15 1.0814     0
1701      0.16 1.0814     1
1702      0.17 1.0738     0
1703      0.18 1.0738     0
1704      0.19 1.0712     0
用下面这个程序,
df<-read.csv('data.csv',sep=',',header=T)   
n1<-which(df$point==1)   
n2<-c((n1-100)(n1-100))   
n2<-sort(n2)   
df1<-df[n2,]   
只能得到
numerical expression has 14 elements: only the first used 第一行数据
二维码

扫码加我 拉你入群

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

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

全部回复
2018-4-9 09:48:27
pmax(n1 - 100, 1):pmin((n1 + 100), nrow(df))
二维码

扫码加我 拉你入群

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

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

2018-4-9 10:44:28
cheetahfly 发表于 2018-4-9 09:48
pmax(n1 - 100, 1):pmin((n1 + 100), nrow(df))
非常感谢解答,我刚刚试了一下,发现还是有相同的warning:
In pmax(n1 - 100, 1):pmin((n1 + 100), nrow(mydata)) :
  numerical expression has 14 elements: only the first used
二维码

扫码加我 拉你入群

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

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

2018-4-9 13:35:55
barcasuoai 发表于 2018-4-9 10:44
非常感谢解答,我刚刚试了一下,发现还是有相同的warning:
In pmax(n1 - 100, 1):pmin((n1 + 100), nr ...
我只是指出一个你代码中的一个笔误,你的问题要这样解决:
df[rowSums(sapply(n1, function(x) abs(seq_len(nrow(df)) - x) <= 100)) > 0, ]
二维码

扫码加我 拉你入群

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

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

2018-4-9 13:48:39
cheetahfly 发表于 2018-4-9 13:35
我只是指出一个你代码中的一个笔误,你的问题要这样解决:
df[rowSums(sapply(n1, function(x) abs(seq_ ...
按这句功能实现了,非常感谢指教
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群