2016-04-03 78 views
0

我想讀取R中的表格,然後檢查表格的類別列是否匹配某個值,如果它將不同列的值複製過來。因此,創造價值是誰的類別標籤的排列與條件不通過條件複製的列R

B <- read.table("tableFile2.data", sep=";", header=TRUE, row.names=2) 
B$new <- ifelse(B$category == "mammal", B$animal, NA) 
B$new 

隨着文件

wasted space 
more waste 
animal;RowName;category 
dog;a;mammal 
spider;b;insect 
monkey;c;mammal 
sardine;d;fish 
Jeromy;J;angry 

但是相匹配,當我執行這個和打印B $新 我得到的值

1 NA 2 NA 

因此,該程序清楚地適用於該條件,但正確的值不被複制

+0

data.frame B是什麼樣的? –

回答

1

首先,第一個查詢(如果該文件實際上看起來就像你在問題中所描述的一個)應該是:

B <- read.table("tableFile2.data", sep=";", header=TRUE, skip=2) 

爲了完成上述任務,可以運行此查詢:

B$new <- ifelse(B$category == "mammal", as.character(B$animal), NA) 

您提到的輸出背後的原因是在這個數據框B中,'animal'列被當作FACTOR而不是字符。

您在輸出中獲得的數字與您在將B $動物投射爲「整數」時獲得的數字相似。

+0

謝謝,完美的工作。 –