R中的数据帧使用

时间:2011-04-02 02:35:58

标签: r

我有一个.csv文件,我已将其作为数据框读入R(比如df)。 第一列是mm / dd / yyyy格式的日期。第二列是双数。我想要做的是创建一个新的数据框,如:

df2<-data.frame(date=c(df[10,1],df[15,2]),num=c(111,222))

当我尝试这样做时,我得到了非常混乱的df2。我很可能做错了,因为我不理解数据框架的概念。

每当我尝试df[10,1]时,输出就是df的第10行和第1列,包括第1列的所有级别。

2 个答案:

答案 0 :(得分:2)

您可以通过指定列类向量作为read.table colClasses的参数来控制R将如何解释正在读入的数据类。否则R将使用type.convert,它将根据R的逻辑定义以“逻辑”方式转换字符向量。如果你不熟悉它,那显然有一些潜在的怪癖。

您还可以通过在stringsAsFactors = FALSE中将read.table指定为参数来阻止R创建因子,这通常比指定所有colClasses更容易。

您可以使用strptime()格式化日期。考虑到所有这些因素,我建议您将数据读入R而不将字符数据转换为因子,然后使用strptime进行格式化。

df <- read.csv("myFile.csv", stringsAsFactors = FALSE)
#Convert time to proper time format
df$time <- strptime(df$time, "%m/%d/%Y")

答案 1 :(得分:0)

如果您不想在每次读入/构造数据框时输入stringsAsFactors = FALSE。你可以在一开始就指定

 options(stringsAsFactors=FALSE)