【发布时间】:2020-09-15 16:51:11
【问题描述】:
我想添加一个新列 (category),其值 (a/b) 是 id 列的随机样本(无需替换),但以 @ 中的值 (A/B) 为条件987654325@-列。
但是,当尝试这样做时,id 列中的值发生了变化——我不明白为什么会发生这种情况。
set.seed(123)
df <- data.frame(id=LETTERS[1:10], group=sample(c("1","2"), size=10, replace=T))
df$category <- NA
> table(df$group)
1 2
6 4
df[df$id %in% sample(df[df$group=="1",]$id, size=4, replace=F),]$category <- "a"
df[df$id %in% sample(df[df$group=="2",]$id, size=2, replace=F),]$category <- "b"
> df
id group category
1 A 1 a
2 B 1 <NA>
3 B 1 a
4 D 2 b
5 E 1 <NA>
6 F 2 <NA>
7 G 2 <NA>
8 H 2 b
9 C 1 a
10 E 1 a
> df$id==LETTERS[1:10]
[1] TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE
# this should be all TRUE
(如果表达不够清楚,请随时编辑标题和问题)
【问题讨论】:
标签: r dataframe random sample mismatch