列不通过R中的条件复制

时间:2016-04-03 10:02:58

标签: 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 $ new时 我得到了值

1 NA 2 NA

因此该程序明确适用于该条件,但正确的值不会被复制

1 个答案:

答案 0 :(得分:1)

首先,第一个查询(如果文件实际上看起来像你在问题中描述的那个)应该是:

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

要完成上述任务,您可以运行此查询:

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

您提到的输出背后的原因是,在此数据框B中,列&#39;动物&#39;被视为一个因素而非角色。

您在输出中获得的数字类似于将B $动物视为&#39;整数&#39;时获得的数字。