我尝试使用R中的此For循环创建一个从电子表格中的7列接收数据的数据库,但是它不起作用。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Hello world!
</body>
</html>
'a'正在创建从电子表格的第一列接收数据的列。 “ b”正在接收第二至第六列的数据。 “ Dados”正在创建数据框。 “ RESUMOVEICULO”将所有内容组合在一起
我的最终目标是对第一列中的所有名称进行分组,并对所有其他列中的值求和。循环代码正确吗?如果是这样,我该如何解决?
这是表格的外观:
谢谢!
编辑:我设法用此代码对其进行了修复
for (n in Base[2:6]){
a <- Base$Fenabrave
b <- n
Dados = data.frame(a=a, b=b)
RESUMOVEICULO <- as.data.frame(summaryBy(b~a, data=Dados, FUN=c(sum)))
}
错误似乎是由于列是用数字命名的,在我用字母替换它们后,谢谢!
答案 0 :(得分:0)
我认为您想要做的是将数据从“宽”(列中的年)转换为“长”(一列用于年,另一列用于销售)。然后您可以分组和求和。
您可以使用tidyr::gather()
,dplyr::group_by()
和dplyr::summarise()
。像这样:
library(dplyr)
library(tidyr)
Base %>%
gather(Year, Sales, -Fenabrave) %>%
group_by(Fenabrave) %>%
summarise(Total = sum(Sales))