从数据框中获取值并将其添加到新数据框中

时间:2013-03-22 18:25:46

标签: r

在下面的代码中,我想将3431933中第一行第六列的值my_data添加到new_data对象。

相反,它似乎是在添加数字2。你能帮助我找到我出错的地方,或者我的根本误解可能是什么?

我的代码:

print(my_data);
new_data <- {};
my_row <- my_data[1,];
print(my_row[1,6]);
new_data <- rbind(new_data, c(my_row[1,6]));
print(new_data);

这是我在打印输出中看到的内容:

my_data中的内容:

     V1            V2 V3   V4   V5       V6       V7            V8
1 10705 indiv7_ACTGAC  2  270  271  3431933  3442637          <NA>
2 41094 indiv7_ACTGAC  2  886  891 10296043 10337136 10297027.1114
3 18841 indiv7_ACTGAC  2 3497 3498 41414296 41433136          <NA>
                V9
1             <NA>
2 10335630.1686849
3             <NA>

打印出my_row[1,6]的内容:

[1] 3431933
Levels: 10296043 3431933 41414296

打印出new_data的内容:

         [,1]

[1,]    2

1 个答案:

答案 0 :(得分:1)

你有factor(即分类变量),你需要转换为数字或字符

#instead of: 
my_row[1,6]

# use: 
as.numeric(as.character(my_row[1,6]))

在处理因素的情况下,当您将其打印出来时,它会跟随Levels: ....(您也可以通过调用is.factor()进行检查)。

您获得的数字2代表变量的第二级。