![](/img/trans.png)
[英]Extracting rows from dataframe with conditions on multiple specific columns in R
[英]Extract specific rows with conditions and all columns from dataframe in R
我有一個由三列(A,月,年)組成的數據框,我想從中提取特定的行(例如,從第10個月和第92年到第4個月和第93年的時間段)和所有列。
A<-c(15:34)
Month<-c(9,9,10,10,11,12,1,2,2,2,3,3,4,4,5,6,7,8,10,10)
Year<-rep(c(92, 93), times = c(6,14))
mydata<- data.frame(A, Month, Year)
我已經嘗試過了,但是沒有用
newdata<-mydata[mydata$Month==10 & mydata$Year== 92 : mydata$Month==4 & mydata$Year== 93 ,]
我不想這樣做mydata[3:14, ]
,因為我的數據幀很大。 這將使我自己找出從哪一行到哪一行數據幀長度超過50000。這是不切實際的。 有沒有辦法做到這一點。
預期的結果是
您真的很接近您的方法,這會起作用:
newdata<-mydata[min(which(mydata$Month==10 & mydata$Year== 92)) :
max(which(mydata$Month==4 & mydata$Year== 93)) ,]
mydata$Month==10 & mydata$Year== 92
將產生邏輯向量,該邏輯向量不能用於通過:
得出范圍。 只能使用兩個整數(一個低位和一個高位)創建范圍,並且可以使用which
從邏輯向量中導出所需的整數。
另外一個困難是,你必須在數據幀重復的行,以便各which
語句將返回多個整數。 要將這些整數減小為一個值,可以使用min
和max
。
請注意,這僅在您子集的行在數據框中連續排列時才有效。 是這樣嗎
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.