gpt4 book ai didi

r - 在r中执行行和列之间的查找函数

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

我有一个数据框,其中有一列(在下面的虚拟数据中称为 ID),其值与几个后续列名称中的一个相匹配。我想做某种查找函数,它会看到 ID 的值,找到匹配的列,然后给出该行的值。

ID = c("A", "A", "B", "B", "B", "C", "C")
A = c(1, 2, 3, 4, 5, 6, 7)
B = c(8, 9, 10, 11, 12, 13, 14)
C = c("set1", "set2", "set1", "set2", "set3", "set1", "set2")

df = data.frame(ID, A, B, C)

#pseudo code:
#df$newrow <- for df, if ID == Column Name, then Column Name & Row Value

我想要的输出:

  ID A  B    C newrow
1 A 1 8 set1 1
2 A 2 9 set2 2
3 B 3 10 set1 10
4 B 4 11 set2 11
5 B 5 12 set3 12
6 C 6 13 set1 set1
7 C 7 14 set2 set2

我可以用一堆 if/then 语句来概念化执行此操作,但实际数据有更多列,我想知道是否有更好的方法/或特定命令来执行。

最佳答案

您可以使用以下解决方案:

library(dplyr)

df %>%
rowwise() %>%
mutate(new_col = as.character(get(ID)))

# A tibble: 7 x 5
# Rowwise:
ID A B C new_col
<chr> <dbl> <dbl> <chr> <chr>
1 A 1 8 set1 1
2 A 2 9 set2 2
3 B 3 10 set1 10
4 B 4 11 set2 11
5 B 5 12 set3 12
6 C 6 13 set1 set1
7 C 7 14 set2 set2

关于r - 在r中执行行和列之间的查找函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70637925/

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