【发布时间】:2014-08-20 23:00:02
【问题描述】:
我从 Google Analytics API 中提取数据,在本地对其进行处理,然后将 .Rmd 文件编入文本、表格和可视化文件中。作为编织/制表过程的一部分,我正在做一些基本的格式化(例如,四舍五入百分比和添加 % 符号)。
对于这个问题,我有toPercent(),如果像这样使用它可以正常工作:
toPercent <- function(percentData){
percentData <- round(data, 2)
percentData <- mapply(toString, percentData)
percentData <- paste(percentData, "%", sep="")
}
devices <- toPercent(devices$avgSessionDuration)
但是,为每个表手动设置函数非常耗时。我创建了percentCheck() 来查找符合我的条件的列:
percentCheck <- function(data){
data[,grep("rate|percent", names(data), ignore.case=TRUE)] <- toPercent(data[,grep("rate|percent", names(data), ignore.case=TRUE)])
}
devices <- percentCheck(devices)
但我知道这不适用于具有多个匹配项的数据集(例如,exitRate 的列和 bounceRate 的列)。
Q1:我写toPercent() 的方式是否不会向一个条目返回多个值?
Q2:如何构造percentCheck() 以映射数据集,并且仅当列名包含给定字符串时才应用toPercent()?
版本/包:
R version 3.1.1 (2014-07-10) -- "Sock it to Me"
library(rga)
library(knitr)
library(stargazer)
数据:
> dput(devices)
structure(list(deviceCategory = c("desktop", "mobile", "tablet"
), sessions = c(817, 38, 1540), avgSessionDuration = c(153.424888853179,
101.942758538617, 110.270988142292), bounceRate = c(39.0192297391397,
50.2915625371891, 50.1343873517787), exitRate = c(25.3257456030279,
32.0236280487805, 29.0991902834008)), .Names = c("deviceCategory",
"sessions", "avgSessionDuration", "bounceRate", "exitRate"), row.names = c(NA,
-3L), class = "data.frame")
【问题讨论】:
标签: r google-analytics