Что не так с моей функцией сопоставления с образцом и замены - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть кадр данных с температурами в формате XX, X вместо XX.X.

Я могу использовать следующий код для их успешного изменения ...

df$tempMedian <- sub(",",".",df$tempMedian) df$tempMedian <- as.numeric(df$tempMedian)

Я пытался написать следующую функцию, чтобы сделать то же самое:

comma_to_point <- function(data, colname){ data$colname <- sub(",", ".", data$colname) data$colname <- as.numeric(data$colname) }

Когда я вызываю функцию:

comma_to_point(df, tempMedian)

Я получаю следующую ошибку:

"Ошибка в` $ <-. Data.frame` (`<em> tmp `, colname, value = symbol (0)):замена содержит 0 строк, данные имеют 365 "

Мой фрейм данных имеет длину 365 obs.

1 Ответ

0 голосов
/ 06 декабря 2018

Сделайте снимок

comma_to_point <- function(data, colname){
  data[[colname]] <- sub(",", ".", data[[colname]])
  data[[colname]] <- as.numeric(data[[colname]])
  return (data)
}
df = comma_to_point(df, "tempMedian")

При использовании переменной var='my_column' для ссылки на столбец в data.frame вы не можете сделать df$var, так как R будет думать, что varНазвание столбца.Вместо этого вы можете получить столбец с df[[var]].

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