Преобразовать несколько столбцов в числовые в R и преобразовать звездочки в NA - PullRequest
0 голосов
/ 17 января 2019

У меня есть набор данных, в котором некоторые данные были отредактированы по соображениям конфиденциальности и заменены звездочками. R читает эти столбцы как символы, но я хочу, чтобы числа читались как числа и конвертировали звездочки в «NA».

Я могу легко конвертировать один столбец за раз, как это:

df$colname1 <- as.numeric(as.character(df$colname1))

Однако, когда я пытаюсь сделать много столбцов одновременно (начиная со столбца 4), у меня возникают проблемы.

Я просматривал похожие вопросы на этом форуме, но решения не помогли мне. Если я сделаю это:

df[,4:ncol(df)] <- lapply(df, function(x) as.numeric(as.character(x)))

... тогда я получаю два столбца, которые являются ничем иным, как NA.

Если я сделаю это:

for(i in c(4:ncol(df))) {
   df[,i] <- as.numeric(as.character(df[,i]));
 }

... тогда все столбцы - не что иное, как NA.

Любая помощь будет принята с благодарностью. Я новичок, поэтому, пожалуйста, объясните вещи просто.

1 Ответ

0 голосов
/ 17 января 2019

Этот код будет работать при изменении числовых столбцов, а затем заменить все NA на 0.

Если вы хотите изменить все столбцы на числовые, просто используйте mutate_all().

library(tidyverse)

df %>% 
  mutate_at(vars(column1), as.numeric)) %>% 
  replace(is.na(.), 0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...