相关疑难解决方法(0)

对数据框中组内的行进行编号

使用与此类似的数据框:

set.seed(100)  
df <- data.frame(cat = c(rep("aaa", 5), rep("bbb", 5), rep("ccc", 5)), val = runif(15))             
df <- df[order(df$cat, df$val), ]  
df  

   cat        val  
1  aaa 0.05638315  
2  aaa 0.25767250  
3  aaa 0.30776611  
4  aaa 0.46854928  
5  aaa 0.55232243  
6  bbb 0.17026205  
7  bbb 0.37032054  
8  bbb 0.48377074  
9  bbb 0.54655860  
10 bbb 0.81240262  
11 ccc 0.28035384  
12 ccc 0.39848790  
13 ccc 0.62499648  
14 ccc 0.76255108  
15 ccc 0.88216552 
Run Code Online (Sandbox Code Playgroud)

我想在每个组中添加一个带编号的列.这样做显然不是使用R的权力:

 df$num <- 1  
 for (i in 2:(length(df[,1]))) {  
   if (df[i,"cat"]==df[(i-1),"cat"]) { …
Run Code Online (Sandbox Code Playgroud)

r dataframe r-faq

136
推荐指数
6
解决办法
8万
查看次数

当我在`dplyr`之后加载`plyr`时,为什么汇总或变异不能用于group_by?

注意:此问题的标题已经过编辑,使其成为plyr功能掩盖其dplyr对应项时的问题的规范问题.问题的其余部分保持不变.


假设我有以下数据:

dfx <- data.frame(
  group = c(rep('A', 8), rep('B', 15), rep('C', 6)),
  sex = sample(c("M", "F"), size = 29, replace = TRUE),
  age = runif(n = 29, min = 18, max = 54)
)
Run Code Online (Sandbox Code Playgroud)

有了旧的,plyr我可以使用以下代码创建一个总结我的数据的小表:

require(plyr)
ddply(dfx, .(group, sex), summarize,
      mean = round(mean(age), 2),
      sd = round(sd(age), 2))
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样:

  group sex  mean    sd
1     A   F 49.68  5.68
2     A   M 32.21  6.27
3     B   F 31.87  9.80
4     B   M 37.54 …
Run Code Online (Sandbox Code Playgroud)

r plyr r-faq dplyr

17
推荐指数
1
解决办法
8669
查看次数

值的出现的累积序列

我有一个看起来像这样的数据集,其中一列可以有四个不同的值:

dataset <- data.frame(out = c("a","b","c","a","d","b","c","a","d","b","c","a"))
Run Code Online (Sandbox Code Playgroud)

在R中,我想创建第二列,按顺序计算包含特定值的累计行数.因此输出列将如下所示:

out
1
1
1
2
1
2
2
3
2
3
3
4
Run Code Online (Sandbox Code Playgroud)

r sequence

11
推荐指数
2
解决办法
4339
查看次数

dplyr row_number排名错误

我试图使用dplyr在数据框中扩展corr列,但row_number继续失败

> o<- out %>% group_by(site) %>% mutate(row = paste0("corr", row_number()))
Error in rank(x, ties.method = "first", na.last = "keep") : 
  argument "x" is missing, with no default

>dput(out)
structure(list(site = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("2001", "2002", 
"2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", 
"2011", "2012", "2013", "2014", "2015", "2016", "2017", "2020", 
"2021", "2022", "2102", "2107", "2108"), class = "factor"), corr = c(1, 
0.96999258460714, 0.940002658241897, …
Run Code Online (Sandbox Code Playgroud)

r dplyr

5
推荐指数
1
解决办法
4043
查看次数

标签 统计

r ×4

dplyr ×2

r-faq ×2

dataframe ×1

plyr ×1

sequence ×1