我正在尝试读取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
因此该程序明确适用于该条件,但正确的值不会被复制
答案 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;时获得的数字。