Невозможно использовать переменную с числами в R - PullRequest
1 голос
/ 05 апреля 2020

У меня есть несколько фреймов данных, названных как:

1_patient
2_patient
3_patient

Теперь я не могу получить доступ к его переменным. Например:

I am not able to obtain:

2_patient$age

Если я нажимаю клавишу табуляции при написании имени, оно автоматически цитируется, но я все еще не могу его использовать.

Знаете ли вы, как я могу решить эту проблему?

1 Ответ

1 голос
/ 05 апреля 2020

Не рекомендуется называть объект с номерами в качестве префикса, но мы можем использовать обратную кавычку для извлечения значения из объекта

`1_patient`$age

Если есть больше, чем объект, мы можем использовать mget чтобы вернуть объекты в list, а затем извлечь столбец 'age', зациклив list с lapply

mget(ls(pattern = "^\\d+_mtcars$"))
#$`1_mtcars`
#                mpg cyl disp  hp drat    wt  qsec vs am gear carb
#Mazda RX4      21   6  160 110  3.9 2.620 16.46  0  1    4    4
#Mazda RX4 Wag  21   6  160 110  3.9 2.875 17.02  0  1    4    4


lapply(mget(ls(pattern = "^\\d+_patient$")), `[[`, 'age')

Используя небольшой воспроизводимый пример

data(mtcars)
`1_mtcars` <- head(mtcars, 2)
1_mtcars$mpg

Ошибка: неожиданный ввод в "1 _"

`1_mtcars`$mpg
#[1] 21 21
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...