#r #subset
#r #подмножество
Вопрос:
Я хочу реализовать простой вектор выбора строки, используя столбец ‘country’ в приведенном ниже фрейме данных lat_all в R.
pop country lat
12.4 Afghanistan 62
24.3 Australia 12
4 New Zealand 10
100 Japan 30
12 Fiji 28
Используя выделение ниже, которое я могу легко изменить, например
selection <- c("Afghanistan","Australia","Japan")
Я хочу, чтобы результат был:
pop country lat
1 12.4 Afghanistan 62
2 24.3 Australia 12
4 100 Japan 30
Единственный способ, которым я могу получить то, что я хочу до сих пор, — это использовать приведенный ниже, который не использует вектор выделения
lat_all[ lat_all[2]==("Afghanistan") | lat_all[2]==("Australia") | lat_all[2]==("Japan"), ]
Я не понимаю, почему что-то подобное lat_all[2]==selection
не работает для меня. Вектор отбора находит только Афганистан и Японию. Значение Australia равно FALSE, и любой вывод, использующий этот вектор, пропускает Австралию.
Комментарии:
1.
lat_all[ lat_all$country %in% selection, ]
2. Спасибо, я не изучил функцию %in% match. Это помогает. Не могли бы вы или кто-нибудь, пожалуйста, указать, чего мне не хватает и почему мой оригинальный lat_all[2]==выбор не работает?
3.
lat_all[2]==selection
сравнивает 2 вектора, чтобы увидеть, равно ли каждое значение соответствующему значению в другом векторе. Таким образом, он сравнивает элемент 1lat_all[1]
с элементом 1selection
и так далее… например:c(1,2) == c(2,1)
возвращаетFALSE FALSE
4. согласно комментарию @rosscova; сравнение, которое вы пробовали, — это тестирование
Afghanistan == Afghanistan
, затемAustralia == Australia
, затемNew Zealand == Japan
, затем, посколькуselection
короче, чемlat_all
, оно перерабатывается, поэтому следующее сравнениеJapan == Afghanistan
, затемFiji == Australia
5. Нам нужны воспроизводимые примеры. Пожалуйста, укажите свои данные в форме, указанной в описании тега.
Ответ №1:
use subset function
lat_all <- subset(lat_all, country %in% selection)