错误:在R中创建列表并且错误消息不足以知道哪一部分是错误的]

问题描述 投票:0回答:1

我正在尝试创建一个包含以下内容的列表:

  • 获取读数总数
  • 包含:最小值和最大值的向量
  • 站点2的平均读数
data_summary = list(length(sensor.clean),list(max(sensor.clean),min(sensor.clean)),
                    mean(sensor.clean$value[sensor.clean$siteid==2]))

我一直收到此错误:

Error in FUN(X[[i]], ...) : 
  only defined on a data frame with all numeric variables

我不知道列表所指的是哪一部分。

r list
1个回答
0
投票

如果需要整个数据集的max/min,请确保将其应用于numeric列上

i1 <- sapply(sensor.clean, is.numeric)
mx <- max(sensor.clean[i1])
mn <- min(sensor.clean[i1])

并在list创建中使用它

list(ncol(sensor.clean), list(mx, mn), 
          mean(sensor.clean$value[sensor.clean$siteid==2]))

此处'sensor.clean'对象class不清楚。如果它是data.frame,则minmax应该可以工作。

max(data.frame(col1 = 1:3, col2 = 3:5))
#[1] 5

但是,如果它是list,则不会

max(list(col1 = 1:3, col2 = 3:5))

max(list(col1 = 1:3,col2 = 3:5)中的错误:无效的'type'(列表)论点

对于这种情况,我们需要unlist

max(unlist(list(col1 = 1:3, col2 = 3:5)))
#[1] 5

但是,根据错误消息,看来数据是data.frame,并且可以有多个class

d1 <- data.frame(col1 = 1:3, col2 = letters[1:3], col3 = rnorm(3))
max(d1)

FUN(X [[i]],...)中的错误:仅在具有全部数字变量

所以,这里我们需要对numeric列进行子集化>

max(d1[sapply(d1, is.numeric)])
#[1] 3
© www.soinside.com 2019 - 2024. All rights reserved.