Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中连接同一数据集中的两列_R - Fatal编程技术网

如何在R中连接同一数据集中的两列

如何在R中连接同一数据集中的两列,r,R,我有一个按以下顺序排列的数据集: Date Time Open High Low Close Volume NumberOfTrades BidVolume AskVolume 1 2011/12/22 02:00:00 5805.5 5820.5 5804.0 5820.5 253 96 161 71 2 2011/12/22 02:01:00 5819.0 5820.0 5813.0 5817.0 77 57

我有一个按以下顺序排列的数据集:

Date    Time    Open    High    Low Close   Volume  NumberOfTrades  BidVolume   AskVolume
1   2011/12/22   02:00:00   5805.5  5820.5  5804.0  5820.5  253 96  161 71
2   2011/12/22   02:01:00   5819.0  5820.0  5813.0  5817.0  77  57  43  23
3   2011/12/22   02:02:00   5816.5  5820.0  5816.0  5819.0  30  22  9   14
我需要在a列(
Date
)之前添加一列,该列将是
a+B
“Date”
“Time”),然后我将能够使我的数据集成为XTS(XTS需要unick密钥)

最终结果如下:

DateTime             Date       Time       Open   High  Low Close   Volume  NumberOfTrades  BidVolume   AskVolume
1   2011/12/22 02:00:00  2011/12/22  02:00:00   5805.5  5820.5  5804.0  5820.5  253 96  161 71

谢谢

使用
粘贴
组合
日期
时间
列,并使用
as.POSIXct
将字符串转换为日期时间类

假设您的数据帧称为df:

df$DateTime = as.POSIXct(paste(df$Date, df$Time))
DateTime
添加到数据框后,根据@RichardScriven的注释,可以按如下方式重新排列列的顺序:

df = df[ , c(length(df), 1:(length(df)-1))]
或者,您可以添加
DateTime
作为第一列,如下所示:

df = data.frame(DateTime=as.POSIXct(paste(df$Date, df$Time)), df)

最好只按列的实际名称引用列(例如,在本例中为
日期
时间
),并避免使用通用字母(如A和B),这些字母在Excel等电子表格程序中有意义,但在
R
中没有任何内在意义。而不是调用
data.frame
,您可以使用
df[c(长度(df),1:(长度(df)-1)]
重新排列列,我知道,但对于
R
新手来说,这似乎是最直接、最不容易出错的方法。如果可以的话,我有两个数据帧,具有不同长度的行(天数不同)。如何将2个df匹配为具有相同长度,以及何时将上述列用作匹配的索引。再次感谢!如果要将第二个数据帧中的行(我们称之为
df2
)与第一个数据帧中的行(
df1
)具有相同的
Date
Time
)合并,请使用
merge
。例如:
merge(df1,df2,by=c(“日期”,“时间”),all.x=TRUE)
。这将保留
df1
的所有行,并合并到
df2
的所有匹配行中。要仅保留
df1
中的行以及
df2中的匹配项,请设置
all.x=FALSE
)。请注意,如果
df2
中有多行与
df1
中的一行具有相同的
日期和
时间,则
merge
将为
df2
中的每个额外匹配行向输出数据框添加一行。谢谢。我稍后会尝试这个,因为现在我对这里的主线程有一个问题。我重新打开我的rstudio,现在当我运行“XG1min=data.frame(DateTime=as.POSIXct(粘贴(XG1min$Time)),XG1min”之前的同一行时,我得到一个错误:as.POSIXlt.character(x,tz,…)中的错误:字符串不是标准的明确格式。它以前是如何工作的,为什么现在不行?