Fout: ongeldig subscripttype ‘lijst’ in R

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 vectorte maken in plaats van een list

x <- c("alpha", "beta")
rowSums(d[x])
#[1] 5 7 9

en als we listgebruiken, unlisthet dan om een vectorte maken zoals data.frameneemt een vectorvan kolomnamen (kolomindex) of rijnamen (rijindex) om de kolommen of rijen te subsetten

x <- list("alpha", "beta")
rowSums(d[unlist(x)])
#[1] 5 7 9

Other episodes