2016-09-28 10 views
3

Ich mag es, einen Vektor mit der Funktion paste0 mit Bedingung zu erstellen, wenn der Wert größer als 0 ist, fügen Sie den Wert in jedem rownames ein.einfügen mit Bedingung in R

ts <- data.frame(t2) 
ts 

1 1 
2 1 
3 0 
4 0 
5 0 
6 2 
footer <- c(paste0("There is ",ts$t2[1]," subject missing in group ",rownames(ts)[1]), 
paste0("There is ",ts$t2[2]," subject missing in group ",rownames(ts)[2]), 
paste0("There are ",ts$t2[6]," subjects missing in group ",rownames(ts)[6])) 
footer 
[1] "There is 1 subject missing in group 1" "There is 1 subject missing in group 2" 
[3] "There are 2 subjects missing in group 6" 

Vielen Dank für Ihren Fortschritt.

+1

Subset an Zeilen, in denen die variable erste ungleich Null der Fall ist. – alistaire

+0

@alistaire, danke, es ist jetzt einfach – BIN

Antwort

7

Wie wäre es eine nette kleine sapply mit einem switch für eine gute Maßnahme geworfen

ts <- data.frame(t2 = c(1,1,0,0,0,2)) 

s <- which(rowSums(ts) > 0) 

sapply(s, function(x) paste0("There ", switch(ts[x, ], "1" = "is ", "are "), ts[x,], " missing from group ", x)) 

# [1] "There is 1 missing from group 1" "There is 1 missing from group 2" "There are 2 missing from group 6" 
Verwandte Themen