Anyone experienced with programming in R?

1
Hello,

I recently started learning about programming in R due to its backtesting and machine learning abilities and was wondering if anyone on this forum would be able to offer a little bit of help. I am simply attempting to convert 1 minute data from a csv to 5 minute data but am getting an error.

Code is as follows:

Code: Select all

#import the data
 
data1 <- read.csv("E:/MarketData/GBPUSD1.csv", header = FALSE)
 
 
 colnames(data1) <- c("Date", "Time", "Open", "High",  "Low", "Close", "Volume")
 
 
 x1 <- nrow(data)
 
 #convert this data to n timeframe
 
 n=5
 
#define lookback
 
lb=300
 
#define a new data frame
 
data2 <-data.frame(matrix(0, ncol=7, nrow=300))
 
colnames(data2) <- c("Date", "Time", "Open", "High", "Low", "Close", "Return")

# run the sequence to convert to a new timeframe
 
for ( k in (1:lb))
 {
   data2[k,1] <- as.character(data1[x1-lb*n+n*(k-1),1])
   data2[k,2] <- as.character(data1[x1-lb*n+n*(k-1),2])
   data2[k,3] <- data1[x1-lb*n+n*(k-1),3]
   data2[k,6] <- data1[x1-lb*n+n*(k-1),6]
   data2[k,4] <- max(data1[(x1-lb*n+n*(k-1)):(x1-lb*n+k*n-1), 4:5])   <----------------------------- ERROR
   data2[k,5] <- min(data1[(x1-lb*n+n*(k-1)):(x1-lb*n+k*n-1), 4:5])   <------------------------------ ERROR
 }
 
for ( k in (2:lb))
 {
   data2[k,7] <- (data2[k,6]-data2[k-1,6])/data2[k-1,6]
   }

  Return <- as.data.frame(embed(data2[ ,7], dimension=5))
The highlighted portion of code above is returning the error "Error in FUN(X[], ...) : only defined on a data frame with all numeric variables". I assuming the data is being read as factors and not numerical values but I'm not sure how to correct the situation. Any ideas?

Thank you for any suggestions!


Re: Anyone experienced with programming in R?

3
slava wrote: Thu Aug 03, 2017 8:11 am Hello,

I recently started learning about programming in R due to its backtesting and machine learning abilities and was wondering if anyone on this forum would be able to offer a little bit of help. I am simply attempting to convert 1 minute data from a csv to 5 minute data but am getting an error.

Code is as follows:

Code: Select all

#import the data
 
data1 <- read.csv("E:/MarketData/GBPUSD1.csv", header = FALSE)
 
 
 colnames(data1) <- c("Date", "Time", "Open", "High",  "Low", "Close", "Volume")
 
 
 x1 <- nrow(data)
 
 #convert this data to n timeframe
 
 n=5
 
#define lookback
 
lb=300
 
#define a new data frame
 
data2 <-data.frame(matrix(0, ncol=7, nrow=300))
 
colnames(data2) <- c("Date", "Time", "Open", "High", "Low", "Close", "Return")

# run the sequence to convert to a new timeframe
 
for ( k in (1:lb))
 {
   data2[k,1] <- as.character(data1[x1-lb*n+n*(k-1),1])
   data2[k,2] <- as.character(data1[x1-lb*n+n*(k-1),2])
   data2[k,3] <- data1[x1-lb*n+n*(k-1),3]
   data2[k,6] <- data1[x1-lb*n+n*(k-1),6]
   data2[k,4] <- max(data1[(x1-lb*n+n*(k-1)):(x1-lb*n+k*n-1), 4:5])   <----------------------------- ERROR
   data2[k,5] <- min(data1[(x1-lb*n+n*(k-1)):(x1-lb*n+k*n-1), 4:5])   <------------------------------ ERROR
 }
 
for ( k in (2:lb))
 {
   data2[k,7] <- (data2[k,6]-data2[k-1,6])/data2[k-1,6]
   }

  Return <- as.data.frame(embed(data2[ ,7], dimension=5))
The highlighted portion of code above is returning the error "Error in FUN(X[], ...) : only defined on a data frame with all numeric variables". I assuming the data is being read as factors and not numerical values but I'm not sure how to correct the situation. Any ideas?

Thank you for any suggestions!


Why don't you export the data as 5 minute already?


Who is online

Users browsing this forum: Amazon [Bot] and 35 guests