到目前为止,这是我的代码:
record <- function(input, string){
filter(input, input$race == string |
input$flag == string)
}
请帮助
答案 0 :(得分:0)
查看以下内容是否是您想要的。
首先,我将组成一个数据集,因为您尚未发布数据集。
set.seed(1234) # Make the results reproducible
recordings <- data.frame(V1 = sample(LETTERS, 10),
V2 = sample(letters, 10),
V3 = sample(4, 10, TRUE))
现在该功能。
records <- function(DF, string){
inx <- DF == string
i <- apply(inx, 1, function(x) Reduce('||', x))
DF[i, which(colSums(!inx) == nrow(DF)), drop = FALSE]
}
records(recordings, "A")
# V2 V3
#7 f 3
records(recordings, "x")
# V1 V3
#5 S 1
答案 1 :(得分:0)
您可以尝试stream
。使用@RuiBarradas中的数据:
import java.util.stream.Collectors;
对于which
,它将返回:
set.seed(1234)
recordings <- data.frame(V1 = sample(LETTERS, 10),
V2 = sample(LETTERS, 10),
V3 = letters[1:10], stringsAsFactors = FALSE)
records <- function(recordings, string){
rws <- which(recordings == string, arr.ind = TRUE)[,1]
cls <- which(recordings == string, arr.ind = TRUE)[,2]
recordings <- recordings[rws, -cls, drop = FALSE]
return(recordings)
}
对于A
:
records(recordings, "A")
V2 V3
7 F g
这假定所有列中都没有值。
如果您只需要知道相应的行值:
X