我正在尝试创建一个包含以下内容的列表:
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
我不知道列表所指的是哪一部分。
如果需要整个数据集的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
,则min
和max
应该可以工作。
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