2016-12-07 9 views
0
data <- data.frame(A = c(1:4), B = c(10:13), C = c(19:22)) 

Ich möchte + 1/A 1/C Zeile berechnen weisegelten Verwendung: Falsche Anzahl der Dimensionen

df$calc <- apply(data, 2, function(x) sum(1/x[,c(1,3)]) 

Error in x[, c(1, 3)] : incorrect number of dimensions 

Ich sehe nicht, warum ich hier einen Fehler bekommen sollte, wenn

fun<- function(x){ 

f <- sum(1/x[,c(1,3)]) 
return(f) 
} 

fun(data[1,]) 
1.052632 

Arbeiten ohne Probleme

+0

Wollten Sie 'gelten soll (Daten, 2, Funktion (x) Summe (1/x [c (1,3)])) ' – akrun

+0

Oder ist es' 1/Daten [["A"]] + 1/Daten [["C"]] ' – akrun

Antwort

0

Wir rowSums tun können, wie es

vektorisiert wird
data$calc <- rowSums(1/data[c("A", "C")]) 

Oder eine andere effiziente Option ist

Reduce(`+`, 1/data[c("A", "C")]) 
+1

Danke an alle. Müde Augen... – Jixxi

0

I

df <- apply(data, 1, function(x) sum(1/x[c(1,3)])) glauben, was Sie

Verwandte Themen