gpt4 book ai didi

r - 如何在 dplyr 中执行多条件替换?

转载 作者:行者123 更新时间:2023-12-02 01:48:18 24 4
gpt4 key购买 nike

我有一个包含大约 180 个变量(单词)和 3000 个样本(案例)的数据集 data.csv,它看起来像这样(摘录):

enter image description here

我正在运行 decorana 并使用 kmeansfviz_cluster 绘制集群:

df <- read.csv("data.csv")

DCA <- decorana (veg = log1p (df))

species.scores <- as.data.frame(scores(DCA, "species"))

geom.text.size = 1
theme.size = (14/5) * geom.text.size

set.seed(123)
km.res <- kmeans(species.scores, 4, nstart = 25)
fviz_cluster(km.res, geom = "text", data = species.scores, labelsize = 4)

这会产生令人满意的聚类图:

clusters

我想知道是否可以将样本分层放置在这个变量簇之上?这将有助于指出哪些样本位于哪个簇中。

关于如何实现这样的目标有什么建议吗?

最佳答案

一个可能的解决方案,其中Calculate是在第一个mutate中确定的(因此,在if_else之外),这可以对应一个非常复杂的计算,正如您声明的那样:

library(tidyverse)

ID <- c(1, 1, 1, 5, 5)
Period <- c(1,2,3,1,2)
Value <- c(10,12,11,4,6)
df <- data.frame(ID, Period, Value)

df %>%
mutate(Calculate = Period * Value) %>%
group_by(ID) %>%
mutate(Calculate = if_else(row_number() == n() & Value > 10, 0, Calculate)) %>%
ungroup

#> # A tibble: 5 × 4
#> ID Period Value Calculate
#> <dbl> <dbl> <dbl> <dbl>
#> 1 1 1 10 10
#> 2 1 2 12 24
#> 3 1 3 11 0
#> 4 5 1 4 4
#> 5 5 2 6 12

关于r - 如何在 dplyr 中执行多条件替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70642720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com