我对R来说比较新。我一直试图通过for()参数进行循环试验。
我有遵循这种模式的虚拟数据集:
Date EUR HIGH EUR LOW EUR CLOSE JPY CURNCY JPY LOW JPY CLOSE GBP CURNCY GBP CURNCY GBP CURNCY
8/30/2016 1.12 1.12 1.12 102.56 101.76 102.50 1.31 1.31 1.31
8/29/2016 1.12 1.12 1.12 102.39 101.84 101.92 1.32 1.32 1.32
8/28/2016 1.13 1.12 1.12 101.94 100.06 101.84 1.33 1.33 1.33
8/27/2016 1.13 1.12 1.12 101.94 100.06 101.84 1.33 1.33 1.33
8/26/2016 1.13 1.12 1.12 101.94 100.06 101.84 1.33 1.33 1.33
8/25/2016 1.13 1.13 1.13 100.62 100.30 100.53 1.33 1.33 1.33
8/24/2016 1.13 1.12 1.13 100.61 100.10 100.45 1.33 1.33 1.33
8/23/2016 1.14 1.13 1.13 100.39 99.94 100.24 1.32 1.32 1.32
8/22/2016 1.13 1.13 1.13 100.93 100.21 100.33 1.32 1.32 1.32
8/21/2016 1.14 1.13 1.13 100.46 99.88 100.22 1.32 1.32 1.32
8/20/2016 1.14 1.13 1.13 100.46 99.88 100.22 1.32 1.32 1.32
8/19/2016 1.14 1.13 1.13 100.46 99.88 100.22 1.32 1.32 1.32
由于我有各种Excel文件遵循这种模式组织(即:价格低,高和关闭),我试图创建一个合并三个变量(低,高,关闭)和约会到表。这背后的想法是,我希望为每种货币生成一个单独的表,以便可以对每种货币进行单独的分析,然后让它循环通过所有货币,如果这是有道理的。
理想情况下,我希望R生成一个表格,如:
Date Euro High Euro Close Euro low
1/1 1.15 1.13 1.12
1/2 1.15 1.13 1.12
1/3 1.15 1.13 1.12
然后我会让R做一些基本分析,然后让它重复下一个变量(GBP,JPY)的过程。我在分组部分遇到一些麻烦。
我的代码非常错误(也可能是一个主要的眼睛),但它可能有助于指出改进/错误:
Data.Prep = function(x){
for(i in seq(1))
{
dates = as.Date(x[,i], format="%m/%d/$Y")
}
for(i in seq(2, length(x)))
{
x[,i] = as.numeric(as.character(x[,i]))
}
for(i in seq(2, length(x), 3))
{
x1 = x[i:(i-1)]
}
}
x1返回:
GBP.CURNCY JPY.CLOSE
1 1.3120 102.50
2 1.3172 101.92
3 1.3279 101.84
4 1.3279 101.84
5 1.3279 101.84
6 1.3264 100.53
7 1.3273 100.45
8 1.3211 100.24
9 1.3157 100.33
10 1.3185 100.22
11 1.3185 100.22
12 1.3185 100.22
答案 0 :(得分:3)
您可以这样做,但您应该使用哪种货币。在这里,我提供一个货币矢量,然后检索列索引。然后我们可以做一个标准的子设置。
vec=c('EUR', 'JPY', 'GBP' )
i=sapply(vec, function(y) grep(y,names(x)), USE.NAMES = F)
apply(i,2, function(i) x[c(1,i)] )