Как я могу создать для l oop с условием «если», которое извлекает метку из вектора, когда метка присутствует? - PullRequest
0 голосов
/ 20 февраля 2020

Я часто работаю с наборами данных из spss, в которые обычно встроены метки переменных.

Мне нравится иметь аккуратную опцию для извлечения меток этих переменных, если они присутствуют.

Я думаю, что нашел правильный код, но есть одна ошибка, которую я не понимаю.

Вот код.

Сначала я хочу извлечь метки из списка векторов. :

lista2 <- sapply(list(variable1, variable2, variable3), function(x) {attr(x, which = "label")})

Я получаю другой список, например:

[[1]]
[1] "Q1. Wska? swoj? p?e?:"

[[2]]
[1] "Q3. Jaki masz kolor oczu?"

[[3]]
NULL

Затем я создаю пустой вектор:

labels <- c()

И в конце Я пытаюсь создать l oop:

for(i in length(lista2)) {
   if(is.null(lista2[[i]]) == F) {
       labels[[i]] <- lista2[[i]]
   }
   else{
       labels[[i]] <- c("z")  
   }
}

К сожалению, первая часть if не работает.

[1] NA  NA  "z"

Но когда я делаю это вручную, это Я пишу, например,

labels[[1]] <- lista2[[1]]

Все работает хорошо.

Буду благодарен за любую помощь.

...