После запуска итерации функции str(df)
выглядит иначе (см. Ниже). Позже у меня возникают проблемы с анализом, и я думаю, что это вызывает проблему. Но я не знаю, почему это произошло и как это можно исправить?
id <- factor(rep(letters[1:2], each=5))
A <- c(1,2,NA,6,8,9,0,6,7,9)
B <- c(5,6,1,9,8,1,NA,9,7,4)
C <- c(2,3,5,NA,NA,2,7,6,4,6)
D <- c(6,5,8,3,2,9,NA,2,6,8)
df <- data.frame(id, A, B,C,D)
df
dat <- data.frame(col=c("A","B","C","D"), value=c(23,45,26,89))
test <- function(i){
df[,i][is.na(df[,i])] <- dat$value[dat$col==i]
return(df[i])
}
df <-df[,-1]
for(i in colnames(df)){
df[[i]] <- test(i)
}
df
str(df)
'data.frame': 10 obs. of 4 variables:
$ A:'data.frame': 10 obs. of 1 variable:
..$ A: num 1 2 23 6 8 9 0 6 7 9
$ B:'data.frame': 10 obs. of 1 variable:
..$ B: num 5 6 1 9 8 1 45 9 7 4
$ C:'data.frame': 10 obs. of 1 variable:
..$ C: num 2 3 5 26 26 2 7 6 4 6
$ D:'data.frame': 10 obs. of 1 variable:
..$ D: num 6 5 8 3 2 9 89 2 6 8
Почему это не выглядит так:
'data.frame': 10 obs. of 5 variables:
$ id: Factor w/ 2 levels "a","b": 1 1 1 1 1 2 2 2 2 2
$ A : num 1 2 23 6 8 9 0 6 7 9
$ B : num 5 6 1 9 8 1 45 9 7 4
$ C : num 2 3 5 26 26 2 7 6 4 6
$ D : num 6 5 8 3 2 9 NA 2 6 8
Благодарим Вас за помощь.