Есть ли способ преобразовать строку в формате пути матрицы в числовой массив? - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь передать строковую версию пути матрицы, содержащей числовые данные, в функцию.

Я пытался использовать noquote() для удаления цитат, а также as.numeric() для преобразования своего класса. Но последний возвращает АН только по принуждению.

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

df = as.data.frame(matrix(rexp(25, rate = 0.01), 5)) # Random matrix
colnames(df) = c("a", "b", "c", "d", "e") # Giving it column names
df # Looks like this
dens_df_a.WORKS = density.default(df$a) # Making a density object
plot(dens_df_a.WORKS) # Plotting it nice and fresh
###   This works!   ###

#------------------------------------------------------------

matrix_path = noquote("df$a") # Assigning the same matrix path with no string quotes
dens_df_a.FAILS = density.default(matrix_path) # Doesn't create density object this time
###   This messes up :(  ###

Если перефразировать мой вопрос, как я могу «активировать» matrix_path в приведенном коде, чтобы он работал как первая половина?

Вместо работы я получаю сообщение об ошибке «аргумент« x »должен быть числовым» (это не новость).

Это может показаться ненужным пытаться и пытаться, но я хочу добиться этого в больших масштабах, а не для одного пути. Поэтому я не планирую жестко кодировать 50 путей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...