Список в функции должен возвращать несколько результатов, среди них фрейм данных - PullRequest
0 голосов
/ 24 марта 2020

Я хочу, чтобы эта функция возвращала список, сначала имя столбца, а затем фрейм данных. Но это не работает, чтобы вернуть фрейм данных. Похоже, что-то с размером фрейма данных, чтобы соответствовать списку. Но я не уверен, как это исправить ...

set.seed(1)
a <- rnorm(1:5,0,1)
b <- rnorm(1:5,0,1)
c <- rnorm(1:5,0,1)
df <- data.frame(a,b,c)


test <- function(i){
num <- list()
num[1] <- colnames(df)[i]
num[2] <- df
return(num)
}
test(1)
[[1]]
[1] "a"

[[2]]
[1] -0.6264538  0.1836433 -0.8356286  1.5952808  0.3295078
Warning message:
In num[2] <- df :
  number of items to replace is not a multiple of replacement length

1 Ответ

1 голос
/ 24 марта 2020

Хотите ли вы вернуть значение только этого соответствующего столбца?

Попробуйте:

test <- function(df, i){
  list(name = colnames(df)[i], value = df[[i]])
}

test(df, 1)
#$name
#[1] "a"

#$value
#[1] -0.63  0.18 -0.84  1.60  0.33
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...