【问题标题】:Apply, Merge, Colnames, Data.frame应用、合并、列名、Data.frame
【发布时间】:2013-03-25 10:50:01
【问题描述】:

这是我的数据,包装在 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 合并。然后我输入我想要的列名。

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

【问题讨论】:

  • +1 追求优雅。

标签: r


【解决方案1】:

使用rowSumstransform

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

等效地,使用within:

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

【讨论】:

  • 几秒钟内得到答复,谢谢。可惜我不能给你两个滴答声。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多