2016-12-21 6 views
0

Недавно я обнаружил, что R выведет данные для имени столбца, если имя столбца не существует, поскольку передано, но в dataframe есть имя столбца, которое соответствует тому, что было передано как имя столбца для извлечения данных.Как избежать чтения данных из фрейма данных, когда имя прошедшего столбца не соответствует точно?

Итак, если у вас есть дата-карта X с именами столбцов, скажем, фрукты и овощи, и если вы попытаетесь получить данные в виде X $ fruit, это даст вам данные столбцов фруктов, даже если имя столбца (фрукты) не соответствует имя столбца фрейма данных (фрукты). Это вызывает ошибку, если есть имена столбцов, такие как плоды, потому что в это время я считаю, что R не может решить, показывать ли фрукты или плоды прошедшему значению x $ fruit

Как этого избежать?

+2

Используйте '[[' и вы можете избежать частичные совпадения, то есть 'X [[ "плод"]]' или 'X [, "фрукты"]' – akrun

+0

Благодаря akrun , Я думаю, что это то, что я искал. –

+0

Я отправил свой комментарий в качестве решения. Вы также можете проверить [здесь] (http://stackoverflow.com/help/someone-answers) – akrun

ответ

0

$ может создать путаницу, где существует аналогичный префикс для имен столбцов, так что лучше использовать [[ или [ извлечь столбцы, как это будет соответствовать всей строке, а не каким-либо частичным строкам.

X[["fruit"]] 

Или

X[, "fruit"]