相关疑难解决方法(0)

如何为列中的每组相同值分配唯一的ID号

我有一个包含多个列的数据框.我想创建一个名为"id"的新列,它为"sample"列中的每组相同值提供唯一的ID号.

示例数据:

# dput(df)
df <- structure(list(index = 1:30, val = c(14L, 22L, 1L, 25L, 3L, 34L, 
35L, 36L, 24L, 35L, 33L, 31L, 30L, 30L, 29L, 28L, 26L, 12L, 41L, 
36L, 32L, 37L, 56L, 34L, 23L, 24L, 28L, 22L, 10L, 19L), sample = c(5L, 
6L, 6L, 7L, 7L, 7L, 8L, 9L, 10L, 11L, 11L, 12L, 13L, 14L, 14L, 
15L, 15L, 15L, 16L, 17L, 18L, 18L, 19L, 19L, 19L, 20L, 21L, 22L, 
23L, 23L)), .Names = c("index", "val", "sample"), class = …
Run Code Online (Sandbox Code Playgroud)

r unique dataframe

37
推荐指数
2
解决办法
5万
查看次数

如何基于数据框中的分组变量创建连续索引

我有一个数据框(all_data),其中我有一个网站列表(1 ...到n)和他们的分数,例如

  site  score
     1    10
     1    11  
     1    12
     4    10 
     4    11
     4    11
     8    9
     8    8
     8    7
Run Code Online (Sandbox Code Playgroud)

我想创建一个列,按照数字顺序对每个级别的站点进行编号,就像一个计数器.在该示例中,站点(1,4和8)将在"数字"列中具有1到3的相应计数器:

site  score number
     1    10    1
     1    11    1 
     1    12    1 
     4    10    2
     4    11    2
     4    11    2
     8    9     3
     8    8     3 
     8    7     3
Run Code Online (Sandbox Code Playgroud)

我相信这一定很容易解决,但我还没有找到办法.

r r-faq

22
推荐指数
5
解决办法
2万
查看次数

根据两列分配唯一ID

我有一个如下所示的数据帧(df):

School Student  Year  
A         10    1999
A         10    2000
A         20    1999
A         20    2000
A         20    2001
B         10    1999
B         10    2000
Run Code Online (Sandbox Code Playgroud)

我想创建一个人ID专栏,以便df看起来像这样:

ID School Student  Year  
1   A         10    1999
1   A         10    2000
2   A         20    1999
2   A         20    2000
2   A         20    2001
3   B         10    1999
3   B         10    2000
Run Code Online (Sandbox Code Playgroud)

换句话说,ID变量指示它在数据集中的哪个人,同时考虑学生编号和学校会员资格(这里我们总共有3个学生).

df$ID <- df$Student如果c("School", "Student)是唯一的,我做了并试图请求值+1 .它不起作用.帮助赞赏.

r multiple-columns

10
推荐指数
2
解决办法
2万
查看次数

使用ddply分配组ID

来自R新手的非常基本的表现问题.我想通过唯一的字段组合为数据框中的每一行分配一个组ID.这是我目前的做法:

> # An example data frame
> df <- data.frame(name=c("Anne", "Bob", "Chris", "Dan", "Erin"), 
                   st.num=c("101", "102", "105", "102", "150"), 
                   st.name=c("Main", "Elm", "Park", "Elm", "Main"))
> df
   name st.num st.name
1  Anne    101    Main
2   Bob    102     Elm
3 Chris    105    Park
4   Dan    102     Elm
5  Erin    150    Main
> 
> # A function to generate a random string
> getString <- function(size=10) return(paste(sample(c(0:9, LETTERS, letters), size, replace=TRUE), collapse=''))
>
> # Assign a random string for each unique …
Run Code Online (Sandbox Code Playgroud)

r plyr

7
推荐指数
1
解决办法
5679
查看次数

使用数字填充列的有效方法,用于标识列中具有相同值的观察值

我为问题的措辞和错误道歉.操作系统和R中的新手

问题:找到有效的方法来填充列,该数字可以唯一地标识另一列中具有相同值的观察值.结果如下所示:

    patient_number id
1              46  1
2              47  2
3              15  3
4              42  4
5              33  5
6              26  6
7              37  7
8               7  8
9              33  5
10             36  9
Run Code Online (Sandbox Code Playgroud)

样本数据框

set.seed(42)
df <- data.frame(
  patient_number = sample(seq(1, 50, 1), 100, replace = TRUE)
)
Run Code Online (Sandbox Code Playgroud)

我能想到的是什么

df$id <- NA  ## create id and fill with NA make if statement easier
n_unique <- length(unique(df$patient_number))  ## how many unique obs

for (i in 1:nrow(df)) { …
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
2
解决办法
60
查看次数

标签 统计

r ×5

dataframe ×1

multiple-columns ×1

plyr ×1

r-faq ×1

unique ×1