我有一段数据我正在尝试转换为excel数据透视表,以利用双击单元格的功能,并生成包含详细信息的新工作表。
当前的分组和计数是在R / SQL中使用类似的东西完成的:
sqla <- paste('select Species
, CASE WHEN "Sepal.Length" >= 5.8
THEN 1
ELSE 0
END LongSepalLength
, CASE WHEN "Sepal.Width" >= 3
THEN 1
ELSE 0
END LongSepalWidth
, CASE WHEN "Petal.Length" >= 3.75
THEN 1
ELSE 0
END LongPetalLength
, CASE WHEN "Petal.Width" >= 1.12
THEN 1
ELSE 0
END LongPetalWidth
, count(*) Count
from iris
group by Species
, CASE WHEN "Sepal.Length" >= 5.8
THEN 1
ELSE 0
END
, CASE WHEN "Sepal.Width" >= 3
THEN 1
ELSE 0
END
, CASE WHEN "Petal.Length" >= 3.75
THEN 1
ELSE 0
END
, CASE WHEN "Petal.Width" >= 1.12
THEN 1
ELSE 0
END
', sep = '')
sqlb <- sqldf(sqla)
sqlb
这会产生如下内容:
Species LongSepalLength LongSepalWidth LongPetalLength LongPetalWidth Count
1 setosa 0 0 0 0 2
2 setosa 0 1 0 0 47
3 setosa 1 1 0 0 1
4 versicolor 0 0 0 0 6
5 versicolor 0 0 0 1 1
6 versicolor 0 0 1 0 2
7 versicolor 0 0 1 1 8
8 versicolor 0 1 1 1 4
9 versicolor 1 0 1 0 2
10 versicolor 1 0 1 1 15
11 versicolor 1 1 1 1 12
12 virginica 0 0 1 1 3
13 virginica 1 0 1 1 18
14 virginica 1 1 1 1 29
哪个是整洁可读的。我想要的是双击“计数”列并让excel生成一张表格,其中包含该单元格中包含的行的详细信息。
因此,我使用此代码创建数据以转到Excel:
sqla <- paste('select Species
, CASE WHEN "Sepal.Length" >= 5.8
THEN 1
ELSE 0
END LongSepalLength
, CASE WHEN "Sepal.Width" >= 3
THEN 1
ELSE 0
END LongSepalWidth
, CASE WHEN "Petal.Length" >= 3.75
THEN 1
ELSE 0
END LongPetalLength
, CASE WHEN "Petal.Width" >= 1.12
THEN 1
ELSE 0
END LongPetalWidth
from iris
', sep = '')
sqlb <- sqldf(sqla)
sqlb
write.csv(sqlb, file = '~/iris.csv', row.names = F)
但是,当我尝试在Excel数据透视表中重新创建上面的整洁表时,我得到了这个:
哪个无法使用。
有关如何获得类似SQL表的内容的任何建议吗?