замена строк в пустом (NA) фрейме данных без преобразования коэффициентов в целое число - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть фрейм данных со значениями NA и указанными измерениями, и я пытаюсь заменить строки в этом фрейме данных на строки из других фреймов данных, но у строк замены есть несколько типов данных, и факторы продолжают преобразовываться в целые числа. Как мне остановить это?

#Example
df.na <- data.frame(matrix(NA,nrow=2,ncol=3)) #data frame of NA values
df <- cbind.data.frame(c("a","b"),c(1,2),c(TRUE,FALSE)) #data frame of values I want
df.na[1,] <- df[1,] #replace row 1
str(df.na) #column one is now an integer not a factor

Цель этого заключается в том, что он является частью для l oop, и я использую индексирование для замены строк как I go (каждая итерация генерирует строку) вместо создания фрейма данных по одной итерации за раз.

Заранее спасибо за помощь

1 Ответ

0 голосов
/ 22 февраля 2020

Вы можете предотвратить преобразование в целое число, не используя factor во-первых, но character, используя stringsAsFactors = FALSE:

df.na <- data.frame(matrix(NA,nrow=2,ncol=3))
df <- cbind.data.frame(c("a","b"),c(1,2),c(TRUE,FALSE), stringsAsFactors = FALSE)
df.na[1,] <- df[1,]
df.na
#     X1 X2   X3
# 1    a  1 TRUE
# 2 <NA> NA   NA

Если вам нужен столбец как фактор, используйте

df.na[, 1] <- factor(df.na[, 1])

Но обычно это не обязательно, я думаю.

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