"Error: unexpected symbol"我正在定义的函数,但我无法确定错误的来源



为初学者的问题提前道歉,但我暂时对R一无所知。我正在定义一个函数来在数据帧上运行摘要统计信息,它如下所示:

sumstats = function(y) {
sumst = sapply(y, function(x) {
sumstat = c(
mean(x, na.rm = TRUE),
median(x, na.rm = TRUE),
sd(x, na.rm = TRUE),
min(x, na.rm = TRUE),
max(x, na.rm = TRUE)
) names(sumstat) = c("Mean", "Median", "SD", "Min", "Max") sumstat
}) aperm(sumst)
}

然而,我不断收到以下错误,这表明我想要定义不同列名称的方式有问题:

Error: unexpected symbol in:
"      max(x, na.rm = TRUE)
) names"

你能告诉我我的语法是怎么造成错误的吗?

感谢

您需要在sumstat的)和名称(sumstat)的)之间添加一行新行,如

sumstats = function(y) {
sumst = sapply(y, function(x) {
c(
mean(x, na.rm = TRUE),
median(x, na.rm = TRUE),
sd(x, na.rm = TRUE),
min(x, na.rm = TRUE),
max(x, na.rm = TRUE)
)
names(sumstat) = c("Mean", "Median", "SD", "Min", "Max")
sumstat
})
aperm(sumst)
}

您也可以命名矢量中的项目,并跳过名称(sumstat)完全

sumstats = function(y) {
sapply(y, function(x) {
sumstat = c(
Mean = mean(x, na.rm = TRUE),
Median = median(x, na.rm = TRUE),
sd = sd(x, na.rm = TRUE),
Min = min(x, na.rm = TRUE),
Max = max(x, na.rm = TRUE)
)
})
aperm(sumst)
}

您在c结束的同一行启动names函数。只需更改代码的格式即可。

请注意,使用<-将事物分配给对象更安全。=用于将值传递给函数参数。

sumstats <- function(y) {
sumst <- sapply(
y, 
function(x) {
sumstat <- c(
mean(x, na.rm = TRUE),
median(x, na.rm = TRUE),
sd(x, na.rm = TRUE),
min(x, na.rm = TRUE),
max(x, na.rm = TRUE)
) 
names(sumstat) <- c("Mean", "Median", "SD", "Min", "Max") 
return(sumstat)
}
) 
aperm(sumst)
}

相关内容

最新更新