gpt4 book ai didi

R:subset() 为等效的逻辑表达式返回不同的结果

转载 作者:行者123 更新时间:2023-12-04 18:19:52 27 4
gpt4 key购买 nike

在为子集()编写便利函数时,我遇到了一种奇怪的情况,即使用等效的逻辑语句会返回不同的子集。因此,例如:

dat = data.frame(ttl.stims = c(4,4,8,8), change = c('big', 'small'))
dat
ttl.stims = 4

#logical statements are equivalent
dat$ttl.stims == 4
dat$ttl.stims == ttl.stims

#subset evaluates differently
subset(dat, dat$ttl.stims == 4)
subset(dat, dat$ttl.stims == ttl.stims)

我一直在通过以下方式解决这个问题:
index = dat$ttl.stims == ttl.stims
subset(dat, index)

但我很好奇为什么前两个子集不会产生相同的结果!想法?想法?冠冕堂皇?

最佳答案

因为在调用 subset符号 ttl.stimsdat 的环境中进行解释,所以它变成(经过解释)dat$ttl.stims .我预测对子集的第二次调用会返回整个数据帧。

关于R:subset() 为等效的逻辑表达式返回不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10890706/

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