gpt4 book ai didi

r - 当数据不包含必要的值时如何忽略代码?

转载 作者:行者123 更新时间:2023-12-04 10:47:56 28 4
gpt4 key购买 nike

我是 R 的新手,这里也是,需要一些帮助来修复我的代码,因为有时我的数据会变得很奇怪

所以我有类似这样的数据

Random  Price
11.23 0.68
66.77 0.51
68 0.46
78 0.51
88 0.32
89 0.51
90 0.27
91 0.65

到目前为止,这是我的代码:

newdata <- data[ which(data$Random>=30
& data$Random < 50), ]
Pvalue<- lapply(1:length(dat), function(i){
if(length(dat[[i]][[4]])>1){
t.test(newdata$Price,dat[[i]][[4]])$p.value
}else 'not enough observation'
})

我的代码基本上是在来自 'newdata' 的数据和另一组名为 'dat' 的数据之间进行 t.test但有时我没有从 30 到 50 的 data 类似于我上面的示例数据。所以我的代码不是返回错误,而是如何更改它以便它只返回 NA

最佳答案

您已经知道如何使用 if/else 结构。您所要做的就是添加一个测试 nrow(newdata),或者按如下方式组合两者:

newdata <- subset(data, Random >= 30 &
Random < 50)
Pvalue <- lapply(dat, function(x){
if (length(x[[4]]) > 1 & nrow(newdata) > 1) {
t.test(newdata$Price, x[[4]])$p.value
} else NA
})

您还可以将 lapply(...) 替换为 sapply(...)vapply(..., numeric(1)) 获取数字向量而不是列表。为此,建议像我一样将 'not enough observation' 替换为 NA,否则您可能会得到一个字符向量。

关于r - 当数据不包含必要的值时如何忽略代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15718684/

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