簡體   English   中英

R-創建新列

[英]R - Create New Column

我有以下數據框:

X1
House-US
House-FR
FR-FR
US-US
FR-US

我想創建第二列,以便:

X1       X2
House-US House 
House-FR House
FR-FR    Ia
US-US    Ia
FR-US    Ir

如果某行以House開始,則X2等於House,如果某行的左等於右(FR-FR),則X2等於Ia,其他X2等於Ir。

你有解決方案嗎?

這有效:

library(data.table)
setDT(dt)
splitdf <- dt[, X1] %>% strsplit("-") %>% unlist %>% 
  matrix(ncol = 2, byrow = T) %>% data.frame(stringsAsFactors = FALSE)
names(splitdf) <- c("L", "R")
dt$X2 <- ifelse(splitdf[, "L"] == "House", "House", 
                ifelse(splitdf[, "L"] == splitdf[, "R"], "Ia", "Ir"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM