2016-04-03 47 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

谢谢,完美的工作。 –