Когда я пытаюсь выполнить итерацию по строке фрейма данных в R и поместить значения в вектор, значения в конечном итоге меняются. Что вызывает это? - PullRequest
1 голос
/ 05 мая 2020

Я хочу перебрать фрейм данных в R и поместить каждое значение в отдельный вектор numeri c. Как видите, в исходном фрейме данных (называемом singaporeINF, см. Первую фотографию) все значения находятся в диапазоне от 3000 до 4000.

The dataframe I am trying to get the values from, singaporeINF

Однако, когда я повторяю и извлекаю значения с использованием кода ниже:

singaporeVector <- numeric()
for (i in singaporeINF){
  singaporeVector <- append(singaporeVector, i)
}
print(singaporeVector)

Я получаю следующий результат:

[1] 10  8  8  8  8  8  7  8

Что происходит? Почему значения меняются с 3000 на 10 или 8?

Output

1 Ответ

1 голос
/ 05 мая 2020

Мой ответ лучше оформить в виде комментария, но у меня нет репутации для этого.

Проверьте, какие class() эти значения находятся во фрейме данных, похоже, в них может быть пробел, что может означать, что эти значения являются либо символом, либо, что более вероятно, фактором. Попробуйте

singaporeVector <- numeric()
for (i in singaporeINF){
singaporeVector <- append(as.numeric(as.character(singaporeINF)), i)
}
print(singaporeVector)

Тем не менее, если я прав с проблемой класса, было бы проще сделать следующее без l oop:

singaporeVector <- as.numeric(as.character(singaporeINF[1,]))
...