Tag: dplyr

replace为dplyr中的“重命名”

我喜欢plyr的重命名函数rename 。 我最近开始使用dplyr,并想知道是否有一种简单的方法来使用dplyr中的函数重命名variables,这与plyr的rename一样简单易用。

在tbl_df中包装时查看整个数据框?

tbl_df (以前的tbl_df )是由R中的dplyrdataframe操作包创build的dataframe的一个版本。当意外地调用dataframe时,它防止了长表的输出。 一旦dataframe被tbl_df / tbl_df ,是否有命令查看整个dataframe(dataframe的所有行和列)? 如果我使用df[1:100,] ,我会看到所有100行,但是如果我使用df[1:101,] ,它将只显示前10行。 我想轻松地显示所有行以快速滚动它们。 有没有一个dplyr命令来抵消这一点或解开数据框的方式?

按dplyr中的多列进行分组,使用string向量input

我试图把我对plyr的理解转换成dplyr,但我无法弄清楚如何按多列进行分组。 # make data with weird column names that can't be hard coded data = data.frame( asihckhdoydkhxiydfgfTgdsx = sample(LETTERS[1:3], 100, replace=TRUE), a30mvxigxkghc5cdsvxvyv0ja = sample(LETTERS[1:3], 100, replace=TRUE), value = rnorm(100) ) # get the columns we want to average within columns = names(data)[-3] # plyr – works ddply(data, columns, summarize, value=mean(value)) # dplyr – raises error […]

反向堆积的酒吧顺序

我正在用ggplot创build一个堆积条形图,如下所示: plot_df <- df[!is.na(df$levels), ] ggplot(plot_df, aes(group)) + geom_bar(aes(fill = levels), position = "fill") 这给了我这样的东西: 我如何反转堆叠的酒吧本身的顺序,使1级在底部,5级在每个酒吧的顶部? 我已经看到了这方面的一些问题(例如, 如何控制使用ggplot2上的标识的堆叠条形图的sorting ),而常见的解决scheme似乎是按照该级别对数据框进行重新sorting,因为ggplot正在使用确定顺序 所以我尝试使用dplyr重新sorting: plot_df <- df[!is.na(df$levels), ] %>% arrange(desc(levels)) 不过,情节也是一样的。 无论我按升序还是降序排列,似乎都没有什么差别 这是一个可重现的例子: group <- c(1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4) levels <- c("1","1","1","1","2","2","2","2","3","3","3","3","4","4","4","4","5","5","5","5","1","1","1","1") plot_df <- data.frame(group, levels) ggplot(plot_df, aes(group)) + geom_bar(aes(fill = levels), position = "fill")

独特的行,考虑两列,在R,没有秩序

不像我发现的问题,我想获得没有秩序的两列独特。 我有一个df: df<-cbind(c("a","b","c","b"),c("b","d","e","a")) > df [,1] [,2] [1,] "a" "b" [2,] "b" "d" [3,] "c" "e" [4,] "b" "a" 在这种情况下,第1行和第4行是“重复”,意思是ba和ba一样。 我知道如何find第1列和第2列的独特之处,但是我会发现在这种方法下每一行都是唯一的。

将parameter passing给dplyr函数

我想使用dplyr来参数化下面的计算,它发现哪个Sepal.Length值与多个Sepal.Length值相关联: library(dplyr) iris %>% group_by(Sepal.Length) %>% summarise(n.uniq=n_distinct(Sepal.Width)) %>% filter(n.uniq > 1) 通常我会写这样的东西: not.uniq.per.group <- function(data, group.var, uniq.var) { iris %>% group_by(group.var) %>% summarise(n.uniq=n_distinct(uniq.var)) %>% filter(n.uniq > 1) } 但是,这种方法会引发错误,因为dplyr使用非标准评估 。 这个函数应该如何写?

dplyr总结:“.drop = FALSE”等同于保持输出中长度为零的组

当使用plyr的ddply函数进行summarise时,默认情况下会删除空的类别。 您可以通过添加.drop = FALSE来更改此行为。 但是,在使用dplyr进行summarise时,这不起作用。 是否有另一种方法来保持结果中的空白类别? 这是假数据的例子。 library(dplyr) df = data.frame(a=rep(1:3,4), b=rep(1:2,6)) # Now add an extra level to df$b that has no corresponding value in df$a df$b = factor(df$b, levels=1:3) # Summarise with plyr, keeping categories with a count of zero plyr::ddply(df, "b", summarise, count_a=length(a), .drop=FALSE) b count_a 1 1 6 2 2 6 […]

dplyr可以汇总几个variables而不列出每个variables吗?

dplyr是惊人的快,但我不知道我是否缺less的东西:是否有可能总结了几个variables。 例如: library(dplyr) library(reshape2) (df=dput(structure(list(sex = structure(c(1L, 1L, 2L, 2L), .Label = c("boy", "girl"), class = "factor"), age = c(52L, 58L, 40L, 62L), bmi = c(25L, 23L, 30L, 26L), chol = c(187L, 220L, 190L, 204L)), .Names = c("sex", "age", "bmi", "chol"), row.names = c(NA, -4L), class = "data.frame"))) sex age bmi chol 1 boy 52 […]

滚动平均(移动平均)由组/ id与dplyr

我有一个纵向的血压logging的后续行动。 某一点的价值比移动平均值(滚动均值)要低,这就是我为什么要计算的原因。 数据看起来像 test <- read.table(header=TRUE, text = " ID AGE YEAR_VISIT BLOOD_PRESSURE TREATMENT 1 20 2000 NA 3 1 21 2001 129 2 1 22 2002 145 3 1 22 2002 130 2 2 23 2003 NA NA 2 30 2010 150 2 2 31 2011 110 3 4 50 2005 140 3 4 […]

查找间隔集合/高效重叠联接之间的重叠

概述: 我需要join两个表格: ref包含时间间隔(从t1到t2 )以及每个间隔的id和发生间隔的space 。 map包含时间间隔( t1到t2 ),每个时间间隔都有一个结果res和相应的space 。 我希望获得/join所有的间隔(和他们的分数)的map ,属于ref ref的时间间隔。 例: ref <- data.table(space=rep('nI',3),t1=c(100,300,500),t2=c(150,400,600),id=letters[1:3]) map <- data.table(space=rep('nI',241),t1=seq(0,1200,by=5),t2=seq(5,1205,by=5),res=rnorm(241)) 他们看着像是: > ref space t1 t2 id 1: nI 100 150 a 2: nI 300 400 b 3: nI 500 600 c > map space t1 t2 res 1: nI 0 5 -0.7082922 2: nI 5 […]