Пропустить определенные столбцы в цикле for в r - PullRequest
0 голосов
/ 31 октября 2018

Пример кода для начала работы здесь

ST <- c("AL","AL","AK","AK") 
X1 <- c("2,21", "2,29", "3,49", "2.3") 
X2 <- c("10,333","10,333", "11,333", "11,333") 
df <- cbind(ST, X1, X2) 

Я пытаюсь написать цикл, либо с циклом for, либо с lapply, который может анализировать числа, но пропустить первую строку с именами состояний. Пока я застрял с:

  for(i in seq_along(df[,-1]))  {
  df[[i]] <- parse_number(df[[i]])
  } 

Это производит NA в столбце ST. Я уверен, что есть простое решение, но оно ускользает от меня. Спасибо!

1 Ответ

0 голосов
/ 31 октября 2018

Вы можете попробовать ниже, Вы можете избежать цикла for, используя lapply/sapply здесь, lapply или sapply может перебирать столбцы:

ST <- c("AL","AL","AK","AK") 
X1 <- c("2,21", "2,29", "3,49", "2.3") 
X2 <- c("10,333","10,333", "11,333", "11,333") 
df <- data.frame(ST,X1, X2)

df[,-1] <- lapply(df[,-1] , readr::parse_number)

Примечание : я использую parse_number из readr здесь. Ваша функция parse_number не упоминается, поэтому я предположил, что она из readr.

Выход:

#  ST    X1    X2
#1 AL 221.0 10333
#2 AL 229.0 10333
#3 AK 349.0 11333
#4 AK   2.3 11333
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...