在R中从两个现有变量创建一个新变量

时间:2018-01-24 23:57:28

标签: r

如果这是一个基本问题,我道歉。我是R的新手。

我有一个数据集DAT,它有3个变量:ID,V1和V2。不幸的是,许多情况下都缺少V2数据。我想创建一个新变量V3。我希望V3具有与V2相同的值,但对于任何具有V2缺失值的情况,我希望V3取代V1的值。 R中最有效的方法是什么?

2 个答案:

答案 0 :(得分:1)

使用dplyr包的一种方法。

# Step 1: Load verb-like data wrangling package. 
library(dplyr)

# Step 2: Create some data.
df <- data.frame(ID=1:5, V1 = 11:15, V2 = c(31:33, NA, NA))
ID  V1 V2
  1 11 31
  2 12 32
  3 13 33
  4 14 NA
  5 15 NA
# Step 3: Create a variable V3 using your criteria
df <- mutate(df, V3 = if_else(is.na(V2), V1, V2))
ID  V1 V2 V3
  1 11 31 31
  2 12 32 32
  3 13 33 33
  4 14 NA 14
  5 15 NA 15

如果你有一个大数据框,使用data.table包可能会更有效。

答案 1 :(得分:0)

您也可以使用ifelse语句。

DAT $ V3&lt; - ifelse(is.na(DAT $ V2),DAT $ V1,DAT $ V2)

读取好像V2为空,然后使用V1,否则使用V2中的数据。