Преобразование трех переменных в кадре данных из chr в int в R - PullRequest
1 голос
/ 08 мая 2020

Очень новичок в R, но я надеюсь, что это будет просто. У меня есть таблица html, которую я скопировал в R, и она выглядит так:

`'data.frame':  238 obs. of  6 variables:
$ Facility Name      : chr  "Affinity Healthcare Center"     "Alameda Care Center" "Alcott Rehabilitation Hospital" "Alden Terrace Convalescent Hospital" ...
$ City               : chr  "Paramount" "Burbank" "Los Angeles" "Los Angeles" ...
$ State              : chr  " CA" " CA" " CA" " CA" ...
$ Confirmed Staff    : chr  "26" "36" "14" "27" ...
$ Confirmed Residents: chr  "29" "49" "26" "85" ...
$ Total Deaths       : chr  26 36 14 27 19 3 1 7 16 3 ...`

Я хочу, чтобы Confirmed Staff, Confirmed Residents и Total Deaths были целыми числами, чтобы я мог с ними посчитать и сортировать, упорядочивать и т. д. c.

Я пробовал это для одной переменной, и, похоже, все работает нормально:

`tbls_ls4$`Total Deaths` <- as.integer(tbls_ls4$`Confirmed Staff`)`

Но я бы хотел применить это ко всем трем переменным и не знаю, как это сделать.

Ответы [ 2 ]

2 голосов
/ 08 мая 2020

Это можно сделать несколькими способами:

library(data.table)
setDT(df)
cols <- c("Confirmed Staff", "Confirmed Residents", "Total Deaths")
df[,cols := lapply(.SD, as.integer),.SDcols = cols]

или, если вы предпочитаете base R:

df[, cols] <- lapply(cols, function(d) as.integer(df[,d]))
0 голосов
/ 08 мая 2020

Вы также можете использовать mutate_at из пакета tidyverse для преобразования определенных столбцов из символьных в целые числа.

library(tidyverse)

df<-df %>%
  # Indicate the column names you wish to convert inside vars
  mutate_at(vars(ConfirmedStaff,ConfirmedResidents,TotalDeaths),
            # Indicate the function to apply to each column
            as.integer)
...