2013-03-25 34 views
1

这里是我的数据,包裹在一个data.frame,申请,合并,Colnames,Data.frame

rt5.5 <- c(0, 7, 1, 2, 2, 2, 1, 1) #LC trace % area 
rt6.3 <- c(0, 16, 12, 20, 16, 20, 13, 15) #LC trace % area 
rt8.4 <- c(0, 26, 55, 56, 63, 61, 70, 70) #LC trace % area 
rt9.4 <- c(88, 42, 20, 11, 8, 6, 5, 3) #LC trace % area 
rt22.7 <- c(8, 6, 7, 6, 7, 6, 7, 6) #LC trace % area 
LCtraces <- data.frame(rt5.5, rt6.3, rt8.4, rt9.4,rt22.7, 
         row.names = c("A", "B", "C", "D", "E", "F", "G", "H")) 
total.area <- apply(LCtraces,1, sum) 
LCtraces <- merge(LCtraces,total.area, by="row.names") 
colnames(LCtraces) [7] <- "Total Area" 
rm(rt5.5, rt6.3, rt8.4, rt9.4, rt22.7, total.area) #tidy 

当我建我想跨行加起来的总数的data.frame:此我使用了apply函数,然后使用row.names将生成的向量与data.frame合并。然后我把我想要的列名称。

我所做的工作,但缺乏优雅,任何人都可以提出任何改进?

+0

+1寻求优雅。 – 2013-03-25 14:29:07

回答

4

使用rowSumstransform

LCtraces <- transform(LCtraces, total.area = rowSums(LCtraces)) 

同样地,使用within

LCtraces <- within(LCtraces, "Total Area" <- rowSums(LCtraces)) 
+1

在几秒钟内回复,谢谢。可惜我不能给你两个蜱。 – user1945827 2013-03-25 10:58:12