Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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 使用cbind合并xts对象时colnames的行为_R_Xts_Cbind - Fatal编程技术网

R 使用cbind合并xts对象时colnames的行为

R 使用cbind合并xts对象时colnames的行为,r,xts,cbind,R,Xts,Cbind,如果我使用cbind合并两个矩阵或data.frame具有相同colnames的colnames在新的矩阵或data.frame中保持不变: df <- data.frame(test = c(1,2)) df.merge <- cbind(df,df) df.merge test test 1 1 1 2 2 2 有没有一种方法可以通过合并xts对象来防止重命名列?有什么有用的理由可以让您使用这种行为吗?我有不同列数的时间序列文件。这些列是根据一些参数命

如果我使用
cbind
合并两个
矩阵
data.frame
具有相同
colnames
colnames
在新的
矩阵
data.frame
中保持不变:

df <- data.frame(test = c(1,2))
df.merge <- cbind(df,df)

df.merge
test test
1    1    1
2    2    2

有没有一种方法可以通过合并
xts
对象来防止重命名列?

有什么有用的理由可以让您使用这种行为吗?我有不同列数的时间序列文件。这些列是根据一些参数命名的。在大多数文件中,参数是相同的。如果新列具有相同的名称,那么就更容易了。嗯,也许可以执行类似于
df.xts.merge的操作,但是如果它们相等,则无法基于名称提取第二列。如果您这样做:
df.merge[,它(名称(df.merge)=“test”)]
返回值也将是test和test.1。仅使用列名(
df$test
df[,“test”]
不会同时给出两列,而只给出第一列。但是
cbind.xts
使用
merge.xts
merge.xts
修复了重复的列名。您始终可以使用
名称(df.xts.merge)由于我需要在日期上加入
merge.xts
,因此我现在将所有参数保存到一个向量中,并在合并后命名我的
xts
对象。基本上@phiver现在建议的是:
名称(df.xts.merge)有什么有用的理由让你想要这种行为吗?我有不同数量的列的时间序列文件。这些列是根据一些参数命名的。在大多数文件中,参数都是相同的。如果新列具有相同的名称,那就更容易了。嗯,也许可以执行类似于
df.xts.merge的操作,但是如果名称相等,则无法根据名称提取第二列。如果执行以下操作:
df.merge[,其中(名称(df.merge)=“test”)]
返回值也将是test和test。1.只需使用列名(
df$test
df[,“test”]
不会同时给出两列,只给出第一列。但是
cbind.xts
使用
merge.xts
merge.xts
修复重复的列名。您可以始终执行
名称(df.xts.merge)由于我需要在日期上加入
merge.xts
,因此我现在将所有参数保存到一个向量中,并在合并后命名我的
xts
对象。基本上@phiver现在建议的是:
名称(df.xts.merge)
df.xts <- xts(df, order.by = as.POSIXct(c("2019-02-18 13:00","2019-02-18 14:00"), tz = "UTC"))
df.xts.merge <- cbind(df.xts, df.xts)

df.xts.merge
                    test test.1
2019-02-18 13:00:00    1      1
2019-02-18 14:00:00    2      2