Я написал функцию, которая случайным образом выбирает один элемент из столбца и присваивает элемент вектору.
Тем не менее, для результатов, которые я получаю, элементы символов не выбраны и не назначены должным образом Например, символ «бизнес» будет назначен как целое число.
Я не понимаю этого, потому что это сработало:
> example<-c("apple","orange","apple")
> some_vector<-rep(NA,1)
> some_vector[1]<-sample(example,1)
> some_vector
[1] "apple"
Вывод моей функции будет превращать символьные элементы в «5» или «9», некоторые числовые символы.
Пример примера и вывод здесь:
> dput(example)
structure(list(age_cat = structure(c(8L, 8L, 9L, 9L), .Label = c("20岁以上30岁以下",
"20岁以下", "30岁以上40岁以下", "40岁以上50岁以下",
"50岁以上60岁一下", "60岁以上70岁一下", "70岁以上",
"50岁以上60岁以下", "60岁以上70岁以下"), class = "factor"),
int_trust = structure(c(1L, 2L, 1L, 1L), .Label = c("大多数人是可以信任的",
"要越小心越好"), class = "factor")), .Names = c("age_cat",
"int_trust"), class = "data.frame", row.names = c(NA, 4L))
> rs <- function(df) {
+ set.seed(700)
+ some_vector<-character(2)
+ for (i in 1:2) {
+ some_vector[i]<-sample(df[[i]],1)
+ }
+ # imputed_row<-rbind(some_vector)
+ return(some_vector)
+ }
> rs(example)
[1] "8" "1"