Bijna goed.
Ik zal eerst uitleggen wat je in jouw voorbeeld doet.
De "c()" functie combineert elementen tot een vector. Met de "dollartekenoperator" (dus, "$") selecteer je een "sub-object" uit een object.
Dus, je selecteert de variabelen ("ASQ_1_nummer", ...) uit het dataframe dat "dat" heet. Dat dataframe is een object dat uit een combinatie andere objecten (sub-objecten) bestaat. Dataframes kunnen als sub-objecten alleen vectoren bevatten, en die moeten bovendien allemaal even lang zijn. Een vector is een combinatie van een of meerdere waarden.
Oftewel: een datapunt is een waarde; een vector is een dataserie; en een dataframe is een combinatie dataseries. Omdat die vectoren die samen het dataframe vormen (dus, die dataseries) allemaal even lang moeten zijn, is een dataframe noodzakelijkerwijs altijd rechthoekig. Elke vector is een kolom in het dataframe; en de rijen vormen meestal deelnemers.
Wat jouw commando doet, is acht vectoren uit je dataframe pakken en die achter elkaar plakken in een superlange vector.
Wat je wil is de vectoren middelen. Hiervoor zijn allerlei manieren; ik gebruik nu de "rowMeans()" functie:
dat$VertrouwenVar <- rowMeans(dat[, c('ASQ_1_nummer',
'ASQ_2_nummer',
'ASQ_3_nummer',
'ASQ_19_nummer',
'ASQ_31_nummer',
'ASQ_33_nummer',
'ASQ_37_nummer',
'ASQ_38_nummer')])
Hier worden de rechte haken gebruikt om de kolommen waarin je bent geinteresseerd uit het dataframe te pakken. Dat 'kleinere dataframe' geven we vervolgens mee aan de "rowMeans()" functie, die per regel het gemiddelde berekent.
Je kunt in R ook de "paste0()" functie gebruiken om dit wat efficienter te specificeren:
dat$VertrouwenVar <-
rowMeans(dat[, paste0('ASQ_',
c(1, 2, 3, 19, 31, 33, 37, 38),
'_nummer')])