簡體   English   中英

從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語句將返回多個整數。 要將這些整數減小為一個值,可以使用minmax

請注意,這僅在您子集的行在數據框中連續排列時才有效。 是這樣嗎

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM