我是一名学习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
感谢。
答案 0 :(得分:0)
在data.frame
中,同一列中的值共享相同的变量类型。
在这种情况下,底部的性行是字符,因此整个列被解释为字符(并由stringsAsFactors = TRUE
转换为因子)。
转置您的dat文件,以便Name,Age,SSN和sex成为标题。 那么Age和SSN列都是数字,所以你可以进行数学计算。