关于R

时间:2015-12-15 16:23:43

标签: r

我是一名学习R的C程序员。我已经阅读了Teetor的“R Cookbook”的一部分,并在网上做了一些阅读。我很难理解R中的data.frames。

我在文件中有一个表(即test.dat)

Name Bill Judy Abe 
Age 32 45 67
SSN 5689 4212 6321
sex m f m 

我在

中阅读
data <- read.table("test.dat", header=TRUE)

我打印出来:

data[2,3]

它返回:

[1] 4212
Levels: 4212 45 f

什么级别,如何阻止它打印这些垃圾?
另外,为什么我不能使用data[2,3]的数值?

E.g。

mode(data[2,3])
[1] "numeric"

data[2,3] * 5
[1] NA
Warning message:
In Ops.factor(data[2, 3], 5) : ‘*’ not meaningful for factors

感谢。

1 个答案:

答案 0 :(得分:0)

data.frame中,同一列中的值共享相同的变量类型。 在这种情况下,底部的性行是字符,因此整个列被解释为字符(并由stringsAsFactors = TRUE转换为因子)。

转置您的dat文件,以便Name,Age,SSN和sex成为标题。 那么Age和SSN列都是数字,所以你可以进行数学计算。