gpt4 book ai didi

R - 子集化时的简洁性?

转载 作者:行者123 更新时间:2023-12-04 10:55:08 24 4
gpt4 key购买 nike

我仍然是 R 的新手,并通过模式完成我的所有子集:
data[产生与数据长度相同的逻辑的命令]
或者
子集(数据,生成与数据长度相同的逻辑的命令)

例如:

test = c("A", "B","C")
ignore = c("B")
result = test[ !( test %in% ignore ) ]
result = subset( test , !( test %in% ignore ) )

但我从我的阅读中依稀记得有一种更短/(更具可读性?)的方法来做到这一点?也许使用“with”功能?

有人可以列出上述示例的替代方案以帮助我理解子集化中的选项吗?

最佳答案

对于您的特定示例,我不知道更简洁的子集方式,仅使用向量。关于 with ,您可能会想到的是,根据使用该数据帧中的列的条件对数据帧进行子集化。例如:

dat <- data.frame(variable1 = runif(10), variable2 = letters[1:10])

如果我们想根据使用 dat 的条件获取 variable1 的子集,我们可以这样做:
dat[dat$variable1 < 0,]

或者我们可以通过使用 dat$* 来避免每次都编写 with :
with(dat,dat[variable1 < 0,])

现在,您会注意到在这种情况下我确实没有通过这样做来保存任何击键。但是如果你有一个名字很长的数据框和一个复杂的条件,它可以为你节省一点。如果您要更改有问题的数据框,另请参阅相关的 ?within 命令。

或者,您可以使用 subset ,它可以做基本相同的事情:
subset(dat, variable1 < 0)
subset 还可以通过 select 参数处理列上的条件。

关于R - 子集化时的简洁性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6551629/

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