Tag: plyr

ddply错误的含义:'names'属性必须与向量的长度相同,

我正在通过机器学习黑客,我被困在这一行: from.weight <- ddply(priority.train, .(From.EMail), summarise, Freq = length(Subject)) 其中会产生以下错误: Error in attributes(out) <- attributes(col) : 'names' attribute [9] must be the same length as the vector [1] 这是一个追溯(): > traceback() 11: FUN(1:5[[1L]], …) 10: lapply(seq_len(n), extract_col_rows, df = x, i = i) 9: extract_rows(x$data, x$index[[i]]) 8: `[[.indexed_df`(pieces, i) 7: pieces[[i]] 6: function (i) { […]

dplyr:“不应该直接调用n():函数中的错误”

我试图重现dplyr包中的一个例子,但是这个错误信息。 我期待看到每个组合的频率产生一个新的列n。 有人能告诉我我失踪了吗? 我三重检查,包被加载。 感谢您的帮助,一如既往。 library(dplyr) # summarise peels off a single layer of grouping by_vs_am <- group_by(mtcars, vs, am) by_vs <- summarise(by_vs_am, n = n()) #Error in n() : This function should not be called directly

使用dplyr将函数应用于表的每一行?

在使用plyr我经常发现使用adply来标量函数是非常有用的,我必须将它应用到每一行。 例如 data(iris) library(plyr) head( adply(iris, 1, transform , Max.Len= max(Sepal.Length,Petal.Length)) ) Sepal.Length Sepal.Width Petal.Length Petal.Width Species Max.Len 1 5.1 3.5 1.4 0.2 setosa 5.1 2 4.9 3.0 1.4 0.2 setosa 4.9 3 4.7 3.2 1.3 0.2 setosa 4.7 4 4.6 3.1 1.5 0.2 setosa 4.6 5 5.0 3.6 1.4 0.2 setosa 5.0 6 5.4 […]

如何通过do函数对某些列中不同数量的string进行分解

当列的元素具有不同数量的string时,我有分割列值的问题。 我可以用plyr做,例如: library(plyr) column <- c("jake", "jane jane","john john john") df <- data.frame(1:3, name = column) df$name <- as.character(df$name) df2 <- ldply(strsplit(df$name, " "), rbind) View(df2) 因此,我们有与给定元素中的最大刺入次数相关的列数的dataframe。 当我尝试在dplyr中完成时,我使用了do函数: library(dplyr) df2 <- df %>% do(data.frame(strsplit(.$name, " "))) 但我得到一个错误: Error in data.frame("jake", c("jane", "jane"), c("john", "john", "john" : arguments imply differing number of rows: 1, 2, 3 […]

按多列进行分组并合计其他多列

我有一个约200列的数据框,其中我想表前十组左右,这是因素和总结其余的列。 我列出了所有想要分组的列名以及我想要聚合的所有列的列表。 我正在寻找的输出格式需要是具有相同col数的相同dataframe,只是分组在一起。 有使用包data.table , plyr或其他的解决scheme吗?

汇总给定列上的数据框并显示另一列

我有以下forms的R中的数据框: > head(data) Group Score Info 1 1 1 a 2 1 2 b 3 1 3 c 4 2 4 d 5 2 3 e 6 2 1 f 我想要使​​用max函数在Score列之后进行聚合 > aggregate(data$Score, list(data$Group), max) Group.1 x 1 1 3 2 2 4 但是我也希望显示与每个组的Score列的最大值相关的Info列。 我不知道如何做到这一点。 我期望的输出将是: Group.1 xy 1 1 3 c 2 2 4 […]

用于通过索引分割vector并在该分区上执行操作的语法R代码

我试图在R中find惯用的方法来通过一些索引向量对数值向量进行分割,find该分区中所有数字的总和,然后用该分割总和除除每个单独的条目。 换句话说,如果我从这开始: df <- data.frame(x = c(1,2,3,4,5,6), index = c('a', 'a', 'b', 'b', 'c', 'c')) 我想输出创build一个向量(让我们称之为z): c(1/(1+2), 2/(1+2), 3/(3+4), 3/(3+4), 5/(5+6), 6/(5+6)) 如果我这样做是SQL和可以使用窗口函数,我会这样做: select x / sum(x) over (partition by index) as z from df 如果我使用plyr,我会做这样的事情: ddply(df, .(index), transform, z = x / sum(x)) 但我想知道如何使用标准的R函数编程工具,如mapply / aggregate等

将多组测量列(宽格式)重新整理为单列(长格式)

我有一个宽格式的dataframe,在不同的date范围内进行重复测量。 在我的例子中,有三个不同的时期,都有相应的价值。 例如,在从“DateRange1Start”到“DateRange1End”期间测量的第一个度量('Value1'): ID DateRange1Start DateRange1End Value1 DateRange2Start DateRange2End Value2 DateRange3Start DateRange3End Value3 1 1/1/90 3/1/90 4.4 4/5/91 6/7/91 6.2 5/5/95 6/6/96 3.3 我正在寻找重塑的数据到一个长的格式,使DateRangeXStart和DateRangeXEnd列分组。 因此,原表中的1行在新表中成为3行: ID DateRangeStart DateRangeEnd Value 1 1/1/90 3/1/90 4.4 1 4/5/91 6/7/91 6.2 1 5/5/95 6/6/96 3.3 我知道必须有一种方法来处理reshape2 / melt / tidyr / tidyr ,但我似乎无法弄清楚如何以这种特殊的方式将多组度量variables映射到一组值列中。

将三列数据框重塑为matrix(“长”到“宽”格式)

我有一个data.frame看起来像这样。 xa 1 xb 2 xc 3 ya 3 yb 3 yc 2 我想要这个matrixforms,所以我可以喂它到热图做一个情节。 结果应该如下所示: abc x 1 2 3 y 3 3 2 我已经尝试从重塑包转换,我已经尝试编写一个手动function来做到这一点,但我似乎并没有得到正确的。

如何在每个组中创建一个滞后变量?

我有一个data.table: set.seed(1) data <- data.table(time = c(1:3, 1:4), groups = c(rep(c("b", "a"), c(3, 4))), value = rnorm(7)) data # groups time value # 1: b 1 -0.6264538 # 2: b 2 0.1836433 # 3: b 3 -0.8356286 # 4: a 1 1.5952808 # 5: a 2 0.3295078 # 6: a 3 -0.8204684 # 7: a […]