如何使用一列选通r中另一列的行

  • 本文关键字:一列 列选 何使用 r
  • 更新时间 :
  • 英文 :


我有一个数据集,其中一列为1和0,另一列为双值。我想创建一个第三列,其中包含第二列中每行的数据,该行对应于第一列中的1。我不知道如何做到这一点,在谷歌上搜索这一点简直是一场噩梦。我该怎么做?

您可以使用ifelse在一行中执行此操作。假设您的数据帧称为dfcol1中的1和0值在col2中加倍,则与零对应的值为NA:

df$col3 <- ifelse(df$col1, df$col2, NA)

我们可以在base R中使用索引在单行中执行此操作。我们用第一个"col1"创建逻辑向量,并将其用作索引来创建新列。默认情况下,"i1"中的FALSE值将为NA

i1 <- as.logical(df1$col1) 
# // or
# i1 <- df1$col1 == 1
df1$col3[i1] <- df1$col2[i1]

或者作为单行

df1$col3[as.logical(df1$col1)] <- df1$col2[as.logical(df1$col1)]

最新更新