我需要在數據幀中執行一些操作,因爲有點特別,我不知道如何執行它們。下面是一些數據:選擇數據幀中的連續行... r
x<-seq(1:250)
pos<-seq(1000,1249,1)
pval<-c(rep(0.25,40),rep(0.0001,10),rep(0.14,100),rep(0.0005,20),rep(0.58,10),rep(0.00001,20),rep(0.85,50))
len<-rep(0.1,250)
nsnp<-rep(33.7,250)
data<-data.frame(cbind(x,pos,pval,len,nsnp))
嘛,所以我的問題是,我需要建立從這個數據幀,但我需要根據數據$ PVAL到連續的行結合起來。也就是說,按數據$ x排序,我需要連接所有具有數據$ pval < = 0.05的連續元素。並執行:
- 數據$ PVAL <第一個和最後一個連續的元素之間數據$ POS的均值= 0.05
- 總和所有的連續數據$ LEN數據$ PVAL < = 0.05
- 總結所有的連續數據$ nsnp數據$ PVAL < = 0.05
因爲在我們的數據幀(數據)有與連續的數據$ X號3個地區,最終數據的基礎應該是這樣的:
pos len nsnp
[1,] 1044.5 1 337
[2,] 1159.5 2 674
[3,] 1189.5 2 674
這個數字可以這樣獲得的:
data2<-subset(data,data$pval<=0.05)
mean(data2$pos[data2$pos>=1040 & data2$pos<=1049])
sum(data2$len[data2$pos>=1040 & data2$pos<=1049])
sum(data2$nsnp[data2$pos>=1040 & data2$pos<=1049])
mean(data2$pos[data2$pos>=1150 & data2$pos<=1169])
sum(data2$len[data2$pos>=1150 & data2$pos<=1169])
sum(data2$nsnp[data2$pos>=1150 & data2$pos<=1169])
mean(data2$pos[data2$pos>=1180 & data2$pos<=1199])
sum(data2$len[data2$pos>=1180 & data2$pos<=1199])
sum(data2$nsnp[data2$pos>=1180 & data2$pos<=1199])
我現在希望我的問題的理解。我的問題是,我無法找到如何根據數據$ x選擇連續的行。在我的例子中,這些連續的行是:pos 1040-1049,pos 1150-1169和pos 1180-1199。
Hi Cebs。你嘗試了什麼? – Vincent
對於第一部分我根據數據$ pval的子集。但是我不知道如何開始獲取連續行的操作。謝謝 – Cebs
再一次,我不明白爲什麼我的問題是downvote ...是一個完美的合法問題,有一個例子,我相信很好解釋,請有人解釋我爲什麼... – Cebs