[英]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.