gpt4 book ai didi

r - R 中的多列子集 - 更优雅的代码?

转载 作者:行者123 更新时间:2023-12-04 12:09:42 26 4
gpt4 key购买 nike

我根据多列的多个条件对数据框进行子集化。我正在选择数据框中的行,这些行包含三个不同列中任何一列中向量“标准”中定义的多个值中的任何一个。

我有一些有效的代码,但想知道还有哪些其他(更优雅?)的方法可以做到这一点。这是我所做的:

criteria <-c(1:10)
subset1 <-subset(data, data[, "Col1"] %in% criteria | data[, "Col2"]
%in% criteria | data[, "Col3"] %in% criteria)

热烈欢迎建议。 (我是 R 初学者,因此也热烈欢迎对您的建议进行非常简单的解释。)

最佳答案

我不确定您是否需要两个 apply在这里调用:

# Data
df=data.frame(x=1:4,Col1=c(11,12,3,13),Col2=c(9,12,10,13),Col3=c(9,13,42,23))
criteria=1:10

# Solution
df[apply(df [c('Col1','Col2','Col3')],1,function(x) any(x %in% criteria)),]

除非你想做很多列,那么说可能更易读:
subset(df, Col1 %in% criteria | Col2 %in% criteria | Col3 %in% criteria) 

关于r - R 中的多列子集 - 更优雅的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9641458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com