【问题标题】:Creating new variable based on index position and value of other variable根据索引位置和其他变量的值创建新变量
【发布时间】:2018-04-18 20:40:12
【问题描述】:

我需要一些帮助。我需要根据数据框中变量的值是否等于另一个向量的索引值,将新变量添加到数据框中。下面是一个简化的例子:

vector [2 7 15 4 5]

dataframe (4 variables; Index, Site, Quad, Count)

Index Site Quad Count
1     2    3    0
1     3    7    2
2     1    8    0
2     3    3    1
3     2    3    0
4     3    7    2
5     1    8    0
5     3    3    1

我想创建的变量会将数据框中的 df$Index 的值与向量中的匹配位置相匹配。也就是说,当 df$Index = 1 时,新变量将为 2(向量中的位置 1),当 df$Index = 2 时,新变量将为 7(向量中的位置 2),当 df$Index = 3,新变量将是 3(向量中的位置 3)。

我最终进入了一个 R 虫洞,并且知道解决方案很简单,但我似乎无法理解。感谢您的帮助。

【问题讨论】:

    标签: r


    【解决方案1】:

    如果您的索引实际上是整数索引,例如

    dd<-read.table(text="Index Site Quad Count
    1     2    3    0
    1     3    7    2
    2     1    8    0
    2     3    3    1
    3     2    3    0
    4     3    7    2
    5     1    8    0
    5     3    3    1", header=TRUE)
    vec <- c(2, 7, 15, 4, 5)
    

    然后你可以创建新列

    dd$value <- vec[dd$Index]
    dd
    #   Index Site Quad Count value
    # 1     1    2    3     0     2
    # 2     1    3    7     2     2
    # 3     2    1    8     0     7
    # 4     2    3    3     1     7
    # 5     3    2    3     0    15
    # 6     4    3    7     2     4
    # 7     5    1    8     0     5
    # 8     5    3    3     1     5
    

    【讨论】:

    • 工作就像一个魅力!很简单。非常感谢@MrFlick
    猜你喜欢
    • 2018-07-02
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 2021-09-16
    • 2021-01-15
    • 1970-01-01
    相关资源
    最近更新 更多