Как прочитать столбец с именем столбца `0.3` в R? - PullRequest
2 голосов
/ 15 апреля 2019
library(ltm)
library(mokken)
data("LSAT")
df_aisp<-aisp(LSAT,search='normal')
df_aisp<-as.data.frame(df_aisp)
#subset if df_aisp$0.3==1
subset(df_aisp,0.3==1)

Вывод приведенного выше сценария R:

[1] 0.3
<0 rows> (or 0-length row.names)

На самом деле, df_aisp:

       0.3
Item 1   1
Item 2   0
Item 3   1
Item 4   0
Item 5   0

Что означает subset, дайте мне неправильный результат.
Какрешить эту проблему?

1 Ответ

3 голосов
/ 15 апреля 2019

Мы можем использовать обратные кавычки для имен столбцов (чтобы оценить их как есть), которые не в стандартном формате. По стандартному формату имена начинаются с цифр.

subset(df_aisp,`0.3`==1)

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

df_aisp[df_aisp[,"0.3"] ==1, , drop = FALSE]

Однако мы можем сделать имена стандартными, используя make.names, который добавит префикс X к имени столбца

names(df_aisp) <- make.names(names(df_aisp))
names(df_aisp)
#[1] "X0.3"

Тогда нам не нужны обратные кавычки

 subset(df_aisp, X0.3 == 1)
 #       X0.3
 #Item 1    1
 #Item 3    1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...