簡體   English   中英

如果R或應用

[英]Ifelse in R or apply

我嘗試使df第一列中的元素等於第二列同一行中的元素(根本沒有任何條目)。 這是一件非常簡單的事情,但是我無法在留言板上找到答案。

以下是我的兩次嘗試:

ifelse(y2014[y2014[,1]==y2014[,2]],y2014[,1]=="",y2014[,1]==y2014[,1])

y2014$new=ifelse(y2014[,1]==y2014[,2],0,y2014[,1])

兩者都給出以下錯誤:“因子的水平集不同”我檢查了每個因子的水平數,並且它們相等,盡管第2列中的幾個單元格為空白。應用函數是否可以更好地滿足我的需求完成?

非常感謝您對新手的幫助。

兩件事,通常在比較之前需要將因子轉換為字符,並且您要為該值分配NA而不是0

這樣的事情可能會更好:

y2014$new <- y2014[,1]
y2014$new[as.character(y2014$new) == as.character(y2014[,2])] <- NA

暫無
暫無

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

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