2017-05-09 64 views
1

由行值的列的變更行值我有一個數據幀,例如:的R - 從另一列

X1 X2 
A Type1 
A Type2 
N Type1 
A Type3 
N Type2 
N Type2 

X1和X2因素和不是字符。

我想有以下數據幀:

X1 X2 
A Type1 
A Type2 
N NR 
A Type3 
N NR 
N NR 

正如你可以看到,當X1等於「N」,我想X2等於「NR」。我嘗試使用ifelse和其他函數,但它不起作用並返回「FALSE」。

這裏是我已經嘗試了代碼:

df<-within(df, X2[X1=="N"] <- 'NR') 
+0

最有可能的分配,問題是,你是用因子變量,而不是字符工作變量。你可以使用'str(df)'來檢查它,其中df是你的data.frame的名字。要讀取字符變量,請在'read.csv'或'read.table'中使用'as.is = TRUE'。例如,您可以使用'df $ X1 < - as.character(df $ X1)'來轉換爲字符。使用字符變量(特別是將X2作爲字符向量)時,'df [df $ X1 ==「N」,「X2」] < - 「NR」'將完成您想要的操作。 – lmo

回答

0

我們可以使用data.table到位

library(data.table) 
setDT(df1)[X1=="N", X2 := "NR"] 
+1

謝謝!這樣可行。 – MVachelard