Ik heb hier een probleem – ik maak een functie met behulp van de eclipse-parameter om met verschillende functieparameters om te gaan. Ik heb het opnieuw gemaakt als een vergelijkbare situatie om het probleem te laten zien waar ik steeds tegenaan loop,
> d <- data.frame(alpha=1:3, beta=4:6, gamma=7:9)
> d
alpha beta gamma
1 1 4 7
2 2 5 8
3 3 6 9
> x <- list("alpha", "beta")
> rowSums(d[,c(x)])
Error in .subset(x, j) : invalid subscript type 'list'
Hoe ga ik om met het probleem van het invoeren van een lijst in een subset-oproep?
Antwoord 1, autoriteit 100%
We moeten concatenate gebruiken om een vector
te maken in plaats van een list
x <- c("alpha", "beta")
rowSums(d[x])
#[1] 5 7 9
en als we list
gebruiken, unlist
het dan om een vector
te maken zoals data.frame
neemt een vector
van kolomnamen (kolomindex) of rijnamen (rijindex) om de kolommen of rijen te subsetten
x <- list("alpha", "beta")
rowSums(d[unlist(x)])
#[1] 5 7 9