[ data$group == c("A","B")] 和 [ data$group == "A" | 之间有什么区别?数据$组 == "B" ]?
what is difference between [ data$group == c("A","B")] and [ data$group == "A" | data$group == "B" ]?
我发现这两个函数有些不同,但我不知道它们为什么不同。
如果知道其中原因的人留下一些评论,将不胜感激
有个问题
例如,
data$group
有 16 chr
个“A
”和 16 个 chr
个“B
”
如果我使用函数 c()
,
d1 <- subset(data, data$group == c("A","B"))
d1
只是总数的一部分,例如 12
但如果我使用另一个,
d2 <- subset(data, data$group == "A" | data$group == "B")
d2
有相同数量的数据
这两件事有什么不同?
我猜你的数据是这样的:
data <- data.frame(
group = sample(LETTERS[1:2], 16, TRUE)
)
data
#> group
#> 1 A
#> 2 B
#> 3 A
#> 4 A
#> 5 B
#> 6 B
#> 7 B
#> 8 A
#> 9 A
#> 10 A
#> 11 B
#> 12 A
#> 13 A
#> 14 A
#> 15 A
#> 16 A
subset(data, data$group == c("A","B"))
#> group
#> 1 A
#> 2 B
#> 3 A
#> 6 B
#> 9 A
#> 13 A
#> 15 A
会发生什么:==()
复制向量 c("A","B")
直到它
匹配 data$group
.
的长度
这说明了结果
subset(data, data$group == c("A","B"))
:
data.frame(
group = sample(LETTERS[1:2], 16, TRUE),
AB = rep(c("A", "B"), 8),
match = data$group == rep(c("A", "B"), 8)
)
#> group AB match
#> 1 A A TRUE
#> 2 B B TRUE
#> 3 B A TRUE
#> 4 B B FALSE
#> 5 B A FALSE
#> 6 B B TRUE
#> 7 A A FALSE
#> 8 B B FALSE
#> 9 A A TRUE
#> 10 B B FALSE
#> 11 A A FALSE
#> 12 B B FALSE
#> 13 A A TRUE
#> 14 A B FALSE
#> 15 A A TRUE
#> 16 A B FALSE
match
列显示哪些行为真且行号匹配
subset(data, data$group == c("A","B"))
的指数。
d2 <- subset(data, data$group == "A" | data$group == "B")
另一方面
将 data$group
的每一行与 A 或 B 进行比较。
向量中的所有值。
由 reprex package (v2.0.1)
于 2021-11-11 创建
我发现这两个函数有些不同,但我不知道它们为什么不同。
如果知道其中原因的人留下一些评论,将不胜感激
有个问题
例如,
data$group
有 16 chr
个“A
”和 16 个 chr
个“B
”
如果我使用函数 c()
,
d1 <- subset(data, data$group == c("A","B"))
d1
只是总数的一部分,例如 12
但如果我使用另一个,
d2 <- subset(data, data$group == "A" | data$group == "B")
d2
有相同数量的数据
这两件事有什么不同?
我猜你的数据是这样的:
data <- data.frame(
group = sample(LETTERS[1:2], 16, TRUE)
)
data
#> group
#> 1 A
#> 2 B
#> 3 A
#> 4 A
#> 5 B
#> 6 B
#> 7 B
#> 8 A
#> 9 A
#> 10 A
#> 11 B
#> 12 A
#> 13 A
#> 14 A
#> 15 A
#> 16 A
subset(data, data$group == c("A","B"))
#> group
#> 1 A
#> 2 B
#> 3 A
#> 6 B
#> 9 A
#> 13 A
#> 15 A
会发生什么:==()
复制向量 c("A","B")
直到它
匹配 data$group
.
这说明了结果
subset(data, data$group == c("A","B"))
:
data.frame(
group = sample(LETTERS[1:2], 16, TRUE),
AB = rep(c("A", "B"), 8),
match = data$group == rep(c("A", "B"), 8)
)
#> group AB match
#> 1 A A TRUE
#> 2 B B TRUE
#> 3 B A TRUE
#> 4 B B FALSE
#> 5 B A FALSE
#> 6 B B TRUE
#> 7 A A FALSE
#> 8 B B FALSE
#> 9 A A TRUE
#> 10 B B FALSE
#> 11 A A FALSE
#> 12 B B FALSE
#> 13 A A TRUE
#> 14 A B FALSE
#> 15 A A TRUE
#> 16 A B FALSE
match
列显示哪些行为真且行号匹配
subset(data, data$group == c("A","B"))
的指数。
d2 <- subset(data, data$group == "A" | data$group == "B")
另一方面
将 data$group
的每一行与 A 或 B 进行比较。
向量中的所有值。
由 reprex package (v2.0.1)
于 2021-11-11 创建