2015-06-08 4 views
-1

Я был бы признателен за ваши предложения по подмножеству фрейма данных. Давайте рассмотрим пример кадра данных df:о подмножестве dataframe в R

dd <- c(1,2,3) 
rows <- c("A1","A2","A3") 
columns <- c("B1","B2","B3") 
numbers <- c(400, 500, 600)  
df <- dataframe(dd, rows, columns, numbers) 

и вектор: test_rows <-c("A1","A3")

Как я мог Подмножество фрейм данных df функции вектора test_rows таким образом, что только строка кадра df данных (df$rows), которые соответствуют элементам test_rows («A1» и «A3»)?

+1

Вы можете использовать функцию «подмножество» –

+1

HTTP: // WWW .ats.ucla.edu/стат/г/FAQ/subset_R.htm. Первый результат для запроса Google «R подмножество данных». Возможно, я не даю вам адекватной выгоды, но ваш вопрос «не показывает никаких исследований». – Jubbles

ответ

5

Вот ваш ответ:

df[df$rows %in% test_rows,] 

Кстати, df это имя встроенной функции в R, так что лучше не использовать его в качестве названия для переменных.

+0

Где находится 'df'a зарезервированное слово? Я видел здесь: https://stat.ethz.ch/R-manual/R-devel/library/base/html/Reserved.html, но не существует 'df'. – SabDeM

+2

df - функция. Это то, что происходит, когда я набираю 'df':' function (x, df1, df2, ncp, log = FALSE) ' – Michal

+0

Вы исправили хорошо, потому что зарезервированное слово отличается от имени функции. Попробуйте, например, присвоить значение 'for' слов' while'. В любом случае вы можете назначать значения в любом случае с помощью '' 'и принимать их с помощью функции' get' или просто присваивать обратным выводам '' ''. – SabDeM

2

Только в случае, если набор данных очень велик, и вы хотите более быстрым решением здесь является dplyr код для достижения того же результата:

df %>% filter(rows %in% test_rows) 
Смежные вопросы