【发布时间】:2022-01-16 10:24:56
【问题描述】:
我有一个需要提取列的函数,当我使用 dataframe$column1[i] 时,该函数返回错误,但是当我使用 dataframe[, column1][i] 时,它会起作用。为什么我不能只使用 dataframe$column vs dataframe[, column]???
function1 <- function(data, x, y) {
data <- arrange(data, x)
ylist <- NULL
for(i in 1:nrow(data)){
x0 <- data[, x][i]
data$d0 <- abs(data[,x] - x0)
yi <- data %>% arrange(d0) %>% select(y) %>% unlist() %>% mean()
ylist <- c(ylist, yi)
}
return(ylist)
}
如果我在下面这样编写函数,它将返回错误:$<-.data.frame(*tmp*, "d0", value = numeric(0)) 中的错误:替换有 0 行,数据有 500
function1 <- function(data, x, y) {
data <- arrange(data, x)
ylist <- NULL
for(i in 1:nrow(data)){
x0 <- data$x[i]
data$d0 <- abs(data$x - x0)
yi <- data %>% arrange(d0) %>% select(y) %>% unlist() %>% mean()
ylist <- c(ylist, yi)
}
return(ylist)
}
【问题讨论】:
-
您能否提供一些数据以便重现它?简单的方法是
dput()。