Я новичок в R и пока не знаю всех базовых c концепций. Задача состоит в том, чтобы создать одну объединенную таблицу с несколькими наборами ответов. Я пытаюсь сделать это, используя expss
library и al oop.
Это код в R без al oop (работает нормально):
#libraries
#blah, blah...
#path
df.path = "C:/dataset.sav"
#dataset load
df = read_sav(df.path)
#table
table_undropped1 = df %>%
tab_cells(mdset(q20s1i1 %to% q20s1i8)) %>%
tab_total_row_position("none") %>%
tab_stat_cpct() %>%
tab_pivot()
Существует 10 множественных наборов ответов, поэтому мне нужно создать 10 таблиц способом, показанным выше. Затем я перемещаю эти таблицы и объединяю их. Чтобы упростить код (и узнать что-то новое), я решил создать таблицы, используя al oop. Однако ничего не работает. Я искал решение, и я думаю, что наиболее близким к правильному является:
#this generates a message: '1' not found
for(i in 1:10) {
assign(paste0("table_undropped",i),1) = df %>%
tab_cells(mdset(assign(paste0("q20s",i,"i1"),1) %to% assign(paste0("q20s",i,"i8"),1)))
tab_total_row_position("none") %>%
tab_stat_cpct() %>%
tab_pivot()
}
Тем не менее оно вызывает ошибку, описанную выше кода.
В качестве альтернативы макрос SPSS для этого будет (опубликовано только для лучшей express проблемы, потому что я должен избегать SPSS):
define macro1 (x = !tokens (1)
/y = !tokens (1))
!do !i = !x !to !y.
mrsets
/mdgroup name = !concat($SET_,!i)
variables = !concat("q20s",!i,"i1") to !concat("q20s",!i,"i8")
value = 1.
ctables
/table !concat($SET_,!i) [colpct.responses.count pct40.0].
!doend
!enddefine.
*** MACRO CALL.
macro1 x = 1 y = 10.
Другими словами, я ищу рабочую замену !concat()
в R.