我有一个.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列的所有级别。
答案 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)