Hoe op te lossen in r: fout: proberen een niet-functie toe te passen


Een fout die je tegen kunt komen in R is:

 Error: attempt to apply non-function

Deze fout treedt meestal op wanneer u waarden in R probeert te vermenigvuldigen, maar vergeet een vermenigvuldigingsteken op te nemen ( * ).

In deze tutorial wordt precies uitgelegd hoe u deze fout in twee verschillende scenario’s kunt afhandelen.

Scenario 1: Los de fout op bij de vermenigvuldiging van dataframes

Stel dat we het volgende dataframe in R creëren:

 #create data frame
df <- data. frame (x=c(1, 2, 6, 7),
                 y=c(3, 5, 5, 8))

#view data frame
df

  xy
1 1 3
2 2 5
3 6 5
4 7 8

Stel nu dat we proberen een nieuwe kolom te maken die gelijk is aan kolom x vermenigvuldigd met 10:

 #attempt to create new column
df$x_times_10 <- df$x(10)

Error: attempt to apply non-function

We ontvangen een foutmelding omdat we vergeten zijn een vermenigvuldigingsteken op te nemen ( * ).

Om deze fout op te lossen, moet u een vermenigvuldigingsteken toevoegen:

 #create new column
df$x_times_10 <- df$x*(10)

#view updated data frame
df

  xy x_times_10
1 1 3 10
2 2 5 20
3 6 5 60
4 7 8 70

Scenario 2: Los de vectorvermenigvuldigingsfout op

Stel dat we twee vectoren in R creëren en proberen hun overeenkomstige elementen met elkaar te vermenigvuldigen:

 #create two vectors
x <- c(1, 2, 2, 2, 4, 5, 6)
y <- c(5, 6, 8, 7, 8, 8, 9)

#attempt to multiply corresponding elements in vectors
(x)(y)

Error: attempt to apply non-function

We ontvangen een foutmelding omdat we geen vermenigvuldigingsteken hebben toegevoegd.

Om deze fout op te lossen, moet u een vermenigvuldigingsteken toevoegen:

 #multiply corresponding elements in vectors
(x)*(y)

[1] 5 12 16 14 32 40 54

Merk op dat er deze keer geen fouten worden geproduceerd.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in R kunt oplossen:

Oplossing: voorwaarde heeft lengte > 1 en alleen het eerste element wordt gebruikt
Oplossing: niet-numeriek argument van binaire operator
Oplossing: dim(X) moet een positieve lengte hebben
Oplossing: fout bij het selecteren van ongebruikte argumenten

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert