gpt4 book ai didi

r - 根据条件新建列

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

为了设置场景,我有一组数据,其中两列数据已混合。举个简单的例子:

df1 <- data.frame(Name = c("Bob", "John", "Mark", "Will"), City=c("Apple", "Paris", "Orange", "Berlin"), Fruit=c("London", "Pear", "Madrid", "Orange"))
df2 <- data.frame(Cities = c("Paris", "London", "Berlin", "Madrid", "Moscow", "Warsaw"))

因此,我们有两个小数据集:

> df1
Name City Fruit
1 Bob Apple London
2 John Paris Pear
3 Mark Orange Madrid
4 Will Berlin Orange

> df2
Cities
1 Paris
2 London
3 Berlin
4 Madrid
5 Moscow
6 Warsaw

我的目标是使用 df2 创建一个新列,其中城市位于正确的位置。我对 R 有点陌生,所以我不知道这是如何工作的。

我真的不知道从哪里开始解决这类问题。我的完整数据集要大得多,如果有一种有效的方法来解决这个问题那就太好了!

最佳答案

如果“城市”值仅不同。我们可以循环遍历行,根据“df2”中“城市”的匹配值创建一个逻辑向量,并通过获取顺序中第二个匹配值来与其余值连接

df1[] <- t(apply(df1, 1, function(x) 
{
i1 <- x %in% df2$Cities
i2 <- !i1
x1 <- x[i2]
c(x1[1], x[i1], x1[2])}))

-输出

> df1
Name City Fruit
1 Bob London Apple
2 John Paris Pear
3 Mark Madrid Orange
4 Will Berlin Orange

关于r - 根据条件新建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74576940/

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