簡體   English   中英

想要從開始到特定值對數據幀進行子集

[英]Want to subset dataframe from beginning to certain value

我有一個包含歸納和觀測數據的數據框,我想將其分為兩部分。 歸納從第一行到行為值為“ e”的行,第二行將行到末尾。

##      Time Behavior
## 1     1.0        D
## 2    46.0        r
## 3   104.1        r
## 4   146.4        r
## 5   164.6        r
## 6   204.5        r
## 7   248.7        r
## 8   261.8        a
## 9   337.2        x
## 10  392.7        a
## 11  609.8        e
## 12  630.6        r
## 13  661.9        u
## 14  664.5        a
## 15  745.6        r
## 16  769.9        r
## 17 1986.1        a

我要D-> e合為一,然后e->以另一結為尾。

 indx <- grep("e", dat[,2])
 lst <- setNames( lapply(Map(`:`, c(1,indx), c(indx,nrow(dat))),function(i) dat[i,]),paste0("D",1:2))
 list2env(lst, envir=.GlobalEnv)#

  tail(D1,2)
  #     Time Behavior
  #10 392.7        a
  #11 609.8        e
 head(D2,2)
  #    Time Behavior
  #11 609.8        e
 # 12 630.6        r

如果它們是后續的,您也可以

df[1:which(df$Behavior == "e"),] -> first
df[-c(1:which(df$Behavior == "e")),] -> second

這會將e僅放在第一個數據幀中


兩者都帶有e:

df[1:which(df$Behavior == "e"),] -> first
df[-c(1:which(df$Behavior == "e")-1),] -> second

暫無
暫無

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

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