2013-03-22 110 views
1

在下面的代码中,我想将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 
+0

在附注中,在'R'中不需要分号(除非你在一行中放置多行代码) – 2013-03-22 18:43:58

回答

1

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

#instead of: 
my_row[1,6] 

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

是什么给了远您处理因素的事实是,当您打印出来时,其后是Levels: ....(您也可以通过致电is.factor()进行检查)。

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

相关问题