如何在某个列中第一次出现 TRUE 之前对数据帧的头部进行切片?
How to slice the head of a dataframe until first time TRUE shows up in a certain column?
我想在 TRUE 第一次出现在特定列中后对数据帧的头部进行切片。
dataframe <- data.frame(C1 = c(4.32, 8.4, 6.43, 7.98, 5.68, 4.97), C2 = c(4.32, 9.87, 5.43, 6.54, 2.34, 6.59), Logical = c(FALSE, FALSE, TRUE, FALSE, TRUE, FALSE))
输出看起来像这样:
dataframe_new <- data.frame(C1 = c( 7.98, 5.68, 4.97), C2 = c(6.54, 2.34, 6.59), Logical = c(FALSE, TRUE, FALSE))
提前致谢!
如果有人也知道如何在列表中做到这一点,那就太好了...
这是一个基本的 R 方法:
which(dataframe$Logical == T)[1]
returns Logical
列中第一次出现 TRUE
的行索引
(which(dataframe$Logical == T)[1] + 1)
因此在第一个 TRUE
之后指定一行
(which(dataframe$Logical == T)[1] + 1):nrow(dataframe)
因此输出行从 TRUE
第一次出现后的一行开始到 dataframe
的行数,即 dataframe
[ 的末尾=26=]
dataframe[(which(dataframe$Logical == T)[1] + 1):nrow(dataframe), ]
C1 C2 Logical
1 7.98 6.54 FALSE
2 5.68 2.34 TRUE
3 4.97 6.59 FALSE
我想在 TRUE 第一次出现在特定列中后对数据帧的头部进行切片。
dataframe <- data.frame(C1 = c(4.32, 8.4, 6.43, 7.98, 5.68, 4.97), C2 = c(4.32, 9.87, 5.43, 6.54, 2.34, 6.59), Logical = c(FALSE, FALSE, TRUE, FALSE, TRUE, FALSE))
输出看起来像这样:
dataframe_new <- data.frame(C1 = c( 7.98, 5.68, 4.97), C2 = c(6.54, 2.34, 6.59), Logical = c(FALSE, TRUE, FALSE))
提前致谢!
如果有人也知道如何在列表中做到这一点,那就太好了...
这是一个基本的 R 方法:
which(dataframe$Logical == T)[1]
returnsLogical
列中第一次出现TRUE
的行索引(which(dataframe$Logical == T)[1] + 1)
因此在第一个TRUE
之后指定一行
(which(dataframe$Logical == T)[1] + 1):nrow(dataframe)
因此输出行从TRUE
第一次出现后的一行开始到dataframe
的行数,即dataframe
[ 的末尾=26=]
dataframe[(which(dataframe$Logical == T)[1] + 1):nrow(dataframe), ]
C1 C2 Logical
1 7.98 6.54 FALSE
2 5.68 2.34 TRUE
3 4.97 6.59 FALSE