1

在下面的代码中,我想将3431933第一行第六列的值添加my_datanew_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
4

1 回答 1

1

您有一个factor(即分类变量),您需要将其转换为数字或字符

#instead of: 
my_row[1,6]

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

你正在处理因素的事实是,当你打印出来时,它后面跟着Levels: .... (你也可以通过调用来检查 is.factor())。

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

于 2013-03-22T18:37:55.920 回答