【发布时间】:2016-12-26 22:47:03
【问题描述】:
我想将changesize 标准化为以下代码,在我看来我的代码没有问题。为什么这给了我错误
summarise_impl(.data, dots) 中的错误:期望单个值
str(pricechange_0.5_2)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':1907600 obs. of 13 variables:
$ url : chr "http://item.yhd.com/item/1242267"
$ time : chr "2016-01-02" "2016-01-02" "2016-01-02" "2016-01-02" ...
$ changPrice : num 0.997 1 1 1 1 ...
$ classify : Factor w/ 251 levels "","Clothing"....
$ changesize : num -0.334 0 0 0 0 ...
$ abs_changesize: num 0.334 0 0 0 0 ...
library(dplyr)
by_url <- group_by(pricechange_0.5_2,url)
url_datad <- summarise(by_url,url_sd_chasize=(changesize -
mean(changesize))/sd(changesize))
这是我的数据样本。
A tibble: 10 × 3
url hangesize abs_changesize
<chr> <dbl> <dbl>
http://item.yhd.com/item/1242267 -0.3343999 0.3343999
http://item.jd.com/418657.html 0.0000000 0.0000000
...
还有其他方法可以将changesize 标准化为url?
【问题讨论】:
-
您能给我们提供您的数据样本吗?你可以做
dput(head(pricechange_0.5_2,url))并复制结果来做到这一点,它会更容易解决你的问题 -
对于每个
pricechange_0.5_2, url组合,您有多个changesize值,而summarise并非旨在处理它。就是这样。 -
好建议。非常感谢。
-
@DavidArenburg 我想就像你说的那样,但是使用 mtcars 我尝试了这个:
by_am <- group_by(mtcars, am)然后是这个url_datad <- summarise(by_am, sd_chasize = mean(mpg)/sd(mpg)),它的工作原理是把它搞砸的减号 -
不,你没听懂我说的话。如果您想使用
mtcars重现此内容,请尝试mtcars %>% group_by(cyl) %>% summarise(mpg)- 也许这会帮助您理解