我試圖根據同一數據框的另一列「solve_status」列將值分配給Dataframe的新列。所有$ resolved_status都是帶有3個標籤的因子 - 'ABC,XYZ,MNP'。我不得不基於條件指定爲0或1,如果(ABC),然後1否則爲0。列的更改因子值
我有以下數據
solved_status
1 ABC
2 XYZ
3 ABC
4 MNP
5 XYZ
6 MNP
我必須將其改爲
solved_status cls
1 ABC 1
2 XYZ 0
3 ABC 1
4 MNP 0
5 XYZ 0
6 MNP 0
pre$cls <- function(x){if(factor(pre$solved_status[x])=="ABC"){ pre$cls[x] = 1} else {pre[x,'cls'] =0}}
的錯誤確曾發生
Error in rep(value, length.out = nrows) : attempt to replicate an object of type 'closure'
然後我用Google搜索,並把它改爲 -
> func <- function(x){if(as.character(pre[x,'solved_status'])=="ABC"){ pre[x,'cls'] = 1} else { pre[x,'cls'] =0} }
> pre$cls = lapply(pre$solved_status,func)
再次得到了一個錯誤 -
Error in Summary.factor(2L, na.rm = FALSE) : 'max' not meaningful for factors
我不知道在哪裏我得到錯誤的。有人可以糾正嗎?
也許'?ifelse'? – Jaap
請分享一個可重現的例子,顯示你有什麼和你需要什麼。 –
有關如何給出[可重現的示例]的一些信息(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610) – Jaap