这里的R新手甚至是编码。我有一个字符向量"更改"在数据框中" df"由我知道的值组成,需要来自相邻列的输入。
change <- c("Apple","Bananas","Cheese")
我想在一个新栏目中做到这一点&#34; New&#34;如果&#34; ColumnA&#34;中的值匹配&#34;更改&#34;中的任何值,然后它给我&#34; ColumnB&#34;中的值,否则它返回&#34;列A&#34;中的值。
╔══════════╦════════════╦════════════╗
║ ColumnA ║ ColumnB ║ New ║
╠══════════╬════════════╬════════════╣
║ Apples ║ ApplesNew ║ ApplesNew ║
║ Beer ║ BeerNew ║ Beer ║
║ Bananas ║ BananasNew ║ BananasNew ║
║ Bananas ║ BananasNew ║ BananasNew ║
║ Cheese ║ CheeseNew ║ CheeseNew ║
╚══════════╩════════════╩════════════╝
我试过了:
within(df, {
New <- ifelse(ColumnA %in% change, ColumnB, ColumnA)
}
)
提前致谢。
答案 0 :(得分:0)
试试这个:
# Your sample data
change <- c("Apples","Bananas","Cheese");
df <- cbind.data.frame(
ColumnA = c("Apples", "Beer", "Bananas", "Bananas", "Cheese"),
ColumnB = c("ApplesNew", "BeerNew", "BananasNew", "BananasNew", "CheeseNew")
);
within(df, { New = ifelse(ColumnA %in% change, as.character(ColumnB), as.character(ColumnA)) })
# ColumnA ColumnB New
#1 Apples ApplesNew ApplesNew
#2 Beer BeerNew Beer
#3 Bananas BananasNew BananasNew
#4 Bananas BananasNew BananasNew
#5 Cheese CheeseNew CheeseNew
如果您没有as.character(...)
,则该列将包含因子编号。