Laço para gerar Subconjuntos

#AA dput(AA) structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, -14L))
matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. colnames(matriz)<-c("open","close","low","higth") i<-1 for( x in 37988:38000){
Caros, bom dia… Estou com uma dúvida bem boba mas não consigo resolver! Eu tenho um data frame que a primeira coluna é a data, a segunda é o horário e as outras seis são dados como preço e volume. Os dias estão em forma numérica e eu os deixei assim porque achei que seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache o valor inicial e final do preço assim como o seu máximo e seu mínimo. Estou tendo problemas somente em trocar de dia. Abaixo segue um pedaço reduzido do data frame e o código. Alguém poderia me dar uma dica? Muito obrigada! AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + + + #x<-37988 + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + #AA + dput(AA) + + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. + colnames(matriz)<-c("open","close","low","higth") + i<-1 + for( x in 37988:37992){ + + + + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + } + matriz + write.table(matriz,"Matriz4ParametrosPreço.txt") +

Olá, segue uma sugestão DADOS = structure(list(Data = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), Hora = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X2 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X3 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X4 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), Preco = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), Volume = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("Data", "Hora", "X1", "X2", "X3", "X4", "Preco", "Volume"), class = "data.frame", row.names = c(NA, -14L)) library(data.table) ## converte data.frame para data.table setDT(DADOS) ## em list voce pode escolher max, min, mean, sd, etc. Em by voce escolhe por preco ## por Data, qual variavel que deseja ## por volume e data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data, Volume)] ## por data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data)] ?data.table Em Qua, 2015-11-11 às 13:00 -0200, Michelle Bau Graczyk escreveu:
Caros, bom dia…
Estou com uma dúvida bem boba mas não consigo resolver!
#AA dput(AA) structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, -14L))
matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. colnames(matriz)<-c("open","close","low","higth") i<-1 for( x in 37988:38000){
Eu tenho um data frame que a primeira coluna é a data, a segunda é o horário e as outras seis são dados como preço e volume. Os dias estão em forma numérica e eu os deixei assim porque achei que seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache o valor inicial e final do preço assim como o seu máximo e seu mínimo. Estou tendo problemas somente em trocar de dia. Abaixo segue um pedaço reduzido do data frame e o código. Alguém poderia me dar uma dica? Muito obrigada! AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + + + #x<-37988 + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + #AA + dput(AA) + + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. + colnames(matriz)<-c("open","close","low","higth") + i<-1 + for( x in 37988:37992){ + + + + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + } + matriz + write.table(matriz,"Matriz4ParametrosPreço.txt") + _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel.

Para manipulação de dados eu sugiro o pacote dplyr. E acho que o operador %>% torna a manipulação mais intuitiva. Tem um bom tutorial aqui: http://rpubs.com/justmarkham/dplyr-tutorial
library(dplyr) AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco)) Source: local data frame [3 x 3]
Data maximo minimo 1 37988 38.06 38.0 2 37991 37.90 37.9 3 37992 38.90 38.9
AA %>% group_by(Data) %>% slice(which.min(Hora)) %>% select(Primeiro = Preco) Source: local data frame [3 x 2] Groups: Data
Data Primeiro 1 37988 38.0 2 37991 37.9 3 37992 38.9 AA %>% group_by(Data) %>% slice(which.max(Hora)) %>% select(Ultimo = Preco) Source: local data frame [3 x 2] Groups: Data Data Ultimo 1 37988 38.05 2 37991 37.90 3 37992 38.90 2015-11-11 14:28 GMT-02:00 salah <salah3.1416@gmail.com>:
Olá, segue uma sugestão
DADOS = structure(list(Data = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), Hora = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X2 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X3 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X4 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), Preco = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), Volume = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("Data", "Hora", "X1", "X2", "X3", "X4", "Preco", "Volume"), class = "data.frame", row.names = c(NA, -14L)) library(data.table)
## converte data.frame para data.table setDT(DADOS) ## em list voce pode escolher max, min, mean, sd, etc. Em by voce escolhe por preco ## por Data, qual variavel que deseja
## por volume e data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data, Volume)]
## por data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data)]
?data.table
Em Qua, 2015-11-11 às 13:00 -0200, Michelle Bau Graczyk escreveu:
Caros, bom dia…
Estou com uma dúvida bem boba mas não consigo resolver!
#AA dput(AA) structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, -14L))
matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. colnames(matriz)<-c("open","close","low","higth") i<-1 for( x in 37988:38000){
Eu tenho um data frame que a primeira coluna é a data, a segunda é o horário e as outras seis são dados como preço e volume. Os dias estão em forma numérica e eu os deixei assim porque achei que seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache o valor inicial e final do preço assim como o seu máximo e seu mínimo. Estou tendo problemas somente em trocar de dia. Abaixo segue um pedaço reduzido do data frame e o código. Alguém poderia me dar uma dica? Muito obrigada! AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + + + #x<-37988 + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + #AA + dput(AA) + + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. + colnames(matriz)<-c("open","close","low","higth") + i<-1 + for( x in 37988:37992){ + + + + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + } + matriz + write.table(matriz,"Matriz4ParametrosPreço.txt") + _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel.

Porque quando rodo não dá certo? Eu coloquei os dois bancos de dados AA e DATA AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco)) Error: index out of bounds
library(dplyr)
AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco))
Source: local data frame [3 x 3] Data maximo minimo 1 37988 38.06 38.0 2 37991 37.90 37.9 3 37992 38.90 38.9
AA %>% group_by(Data) %>% slice(which.min(Hora)) %>% select(Primeiro = Preco)
Source: local data frame [3 x 2] Groups: Data Data Primeiro 1 37988 38.0 2 37991 37.9 3 37992 38.9 AA %>% group_by(Data) %>% slice(which.max(Hora)) %>% select(Ultimo = Preco) Source: local data frame [3 x 2] Groups: Data Data Ultimo 1 37988 38.05 2 37991 37.90 3 37992 38.90 2015-11-11 14:28 GMT-02:00 salah <salah3.1416@gmail.com>: Olá, segue uma sugestão DADOS = structure(list(Data = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), Hora = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X2 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X3 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X4 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), Preco = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), Volume = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("Data", "Hora", "X1", "X2", "X3", "X4", "Preco", "Volume"), class = "data.frame", row.names = c(NA, -14L)) library(data.table) ## converte data.frame para data.table setDT(DADOS) ## em list voce pode escolher max, min, mean, sd, etc. Em by voce escolhe por preco ## por Data, qual variavel que deseja ## por volume e data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data, Volume)] ## por data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data)] ?data.table Em Qua, 2015-11-11 às 13:00 -0200, Michelle Bau Graczyk escreveu:
Caros, bom dia…
Estou com uma dúvida bem boba mas não consigo resolver!
#AA dput(AA) structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, -14L))
matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. colnames(matriz)<-c("open","close","low","higth") i<-1 for( x in 37988:38000){
Eu tenho um data frame que a primeira coluna é a data, a segunda é o horário e as outras seis são dados como preço e volume. Os dias estão em forma numérica e eu os deixei assim porque achei que seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache o valor inicial e final do preço assim como o seu máximo e seu mínimo. Estou tendo problemas somente em trocar de dia. Abaixo segue um pedaço reduzido do data frame e o código. Alguém poderia me dar uma dica? Muito obrigada! AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + + + #x<-37988 + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + #AA + dput(AA) + + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. + colnames(matriz)<-c("open","close","low","higth") + i<-1 + for( x in 37988:37992){ + + + + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + } + matriz + write.table(matriz,"Matriz4ParametrosPreço.txt") +
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel. --- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus

Eu não sei qual é esse banco de dados DATA. Não o usei em meu exemplo. Qual versão do pacote dplyr você está usando? Tentou rodar o comando usando a versão mais recente? 2015-11-11 23:44 GMT-02:00 Mauro Sznelwar <sznelwar@uol.com.br>:
Porque quando rodo não dá certo? Eu coloquei os dois bancos de dados AA e DATA
AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco))
Error: index out of bounds
library(dplyr)
AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco))
Source: local data frame [3 x 3]
Data maximo minimo
1 37988 38.06 38.0
2 37991 37.90 37.9
3 37992 38.90 38.9
AA %>% group_by(Data) %>% slice(which.min(Hora)) %>% select(Primeiro = Preco)
Source: local data frame [3 x 2]
Groups: Data
Data Primeiro
1 37988 38.0
2 37991 37.9
3 37992 38.9
AA %>% group_by(Data) %>% slice(which.max(Hora)) %>% select(Ultimo = Preco)
Source: local data frame [3 x 2]
Groups: Data
Data Ultimo
1 37988 38.05
2 37991 37.90
3 37992 38.90
2015-11-11 14:28 GMT-02:00 salah <salah3.1416@gmail.com>:
Olá, segue uma sugestão
DADOS = structure(list(Data = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), Hora = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X2 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X3 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X4 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), Preco = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), Volume = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("Data", "Hora", "X1", "X2", "X3", "X4", "Preco", "Volume"), class = "data.frame", row.names = c(NA, -14L)) library(data.table)
## converte data.frame para data.table setDT(DADOS) ## em list voce pode escolher max, min, mean, sd, etc. Em by voce escolhe por preco ## por Data, qual variavel que deseja
## por volume e data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data, Volume)]
## por data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data)]
?data.table
Em Qua, 2015-11-11 às 13:00 -0200, Michelle Bau Graczyk escreveu:
Caros, bom dia…
Estou com uma dúvida bem boba mas não consigo resolver!
#AA dput(AA) structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, -14L))
matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. colnames(matriz)<-c("open","close","low","higth") i<-1 for( x in 37988:38000){
Eu tenho um data frame que a primeira coluna é a data, a segunda é o horário e as outras seis são dados como preço e volume. Os dias estão em forma numérica e eu os deixei assim porque achei que seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache o valor inicial e final do preço assim como o seu máximo e seu mínimo. Estou tendo problemas somente em trocar de dia. Abaixo segue um pedaço reduzido do data frame e o código. Alguém poderia me dar uma dica? Muito obrigada! AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + + + #x<-37988 + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + #AA + dput(AA) + + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. + colnames(matriz)<-c("open","close","low","higth") + i<-1 + for( x in 37988:37992){ + + + + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + } + matriz + write.table(matriz,"Matriz4ParametrosPreço.txt") +
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel.
------------------------------ [image: Avast logo] <https://www.avast.com/antivirus>
Este email foi escaneado pelo Avast antivírus. www.avast.com <https://www.avast.com/antivirus>
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Acabei de atualizar o R e o pacote dplyr.
sessionInfo() R version 3.2.2 (2015-08-14) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 8 x64 (build 9200)
locale: [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 LC_MONETARY=Portuguese_Brazil.1252 [4] LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] dplyr_0.4.3 loaded via a namespace (and not attached): [1] magrittr_1.5 R6_2.1.1 assertthat_0.1 parallel_3.2.2 DBI_0.3.1 tools_3.2.2 Rcpp_0.12.1 Nessa versão do R e do dplyr, os seguintes comandos funcionam pra mim(um pouco diferente da minha primeira sugestão)
AA %>% group_by(Data) %>% filter(Hora == min(Hora)) %>% select(Primeiro = Preco) Source: local data frame [3 x 2] Groups: Data [3]
Data Primeiro (int) (dbl) 1 37988 38.0 2 37991 37.9 3 37992 38.9
AA %>% group_by(Data) %>% filter(Hora == max(Hora)) %>% select(Ultimo = Preco) Source: local data frame [3 x 2] Groups: Data [3]
Data Ultimo (int) (dbl) 1 37988 38.05 2 37991 37.90 3 37992 38.90 2015-11-11 23:44 GMT-02:00 Mauro Sznelwar <sznelwar@uol.com.br>:
Porque quando rodo não dá certo? Eu coloquei os dois bancos de dados AA e DATA
AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco))
Error: index out of bounds
library(dplyr)
AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco))
Source: local data frame [3 x 3]
Data maximo minimo
1 37988 38.06 38.0
2 37991 37.90 37.9
3 37992 38.90 38.9
AA %>% group_by(Data) %>% slice(which.min(Hora)) %>% select(Primeiro = Preco)
Source: local data frame [3 x 2]
Groups: Data
Data Primeiro
1 37988 38.0
2 37991 37.9
3 37992 38.9
AA %>% group_by(Data) %>% slice(which.max(Hora)) %>% select(Ultimo = Preco)
Source: local data frame [3 x 2]
Groups: Data
Data Ultimo
1 37988 38.05
2 37991 37.90
3 37992 38.90
2015-11-11 14:28 GMT-02:00 salah <salah3.1416@gmail.com>:
Olá, segue uma sugestão
DADOS = structure(list(Data = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), Hora = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X2 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X3 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X4 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), Preco = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), Volume = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("Data", "Hora", "X1", "X2", "X3", "X4", "Preco", "Volume"), class = "data.frame", row.names = c(NA, -14L)) library(data.table)
## converte data.frame para data.table setDT(DADOS) ## em list voce pode escolher max, min, mean, sd, etc. Em by voce escolhe por preco ## por Data, qual variavel que deseja
## por volume e data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data, Volume)]
## por data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data)]
?data.table
Em Qua, 2015-11-11 às 13:00 -0200, Michelle Bau Graczyk escreveu:
Caros, bom dia…
Estou com uma dúvida bem boba mas não consigo resolver!
#AA dput(AA) structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, -14L))
matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. colnames(matriz)<-c("open","close","low","higth") i<-1 for( x in 37988:38000){
Eu tenho um data frame que a primeira coluna é a data, a segunda é o horário e as outras seis são dados como preço e volume. Os dias estão em forma numérica e eu os deixei assim porque achei que seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache o valor inicial e final do preço assim como o seu máximo e seu mínimo. Estou tendo problemas somente em trocar de dia. Abaixo segue um pedaço reduzido do data frame e o código. Alguém poderia me dar uma dica? Muito obrigada! AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + + + #x<-37988 + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + #AA + dput(AA) + + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. + colnames(matriz)<-c("open","close","low","higth") + i<-1 + for( x in 37988:37992){ + + + + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + } + matriz + write.table(matriz,"Matriz4ParametrosPreço.txt") +
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel.
------------------------------ [image: Avast logo] <https://www.avast.com/antivirus>
Este email foi escaneado pelo Avast antivírus. www.avast.com <https://www.avast.com/antivirus>
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Para mim, eu tive que fazer um ajuste um pouco diferente mas vou testar o que você fez também.Muuito obrigada! Estou mandando o que eu fiz abaixo: > AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",",, col.names=c("Data","hora", "bid","bidQ","ask","askQ","Preco","volume")) > library(dplyr) > a<-AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco)) > a Source: local data frame [3 x 3] Data maximo minimo (int) (dbl) (dbl) 1 37988 38.06 38.00 2 37991 72.23 32.23 3 37992 41.45 38.90 > > > b<-AA %>% + group_by(Data) %>% + slice(which.min(hora)) %>% + ungroup %>% + group_by(Data) %>% + select(Primeiro = Preco) > b Source: local data frame [3 x 2] Groups: Data [3] Data Primeiro (int) (dbl) 1 37988 38.0 2 37991 37.9 3 37992 38.9 > > > > c<-AA %>% + group_by(Data) %>% + slice(which.max(hora)) %>% + ungroup %>% + group_by(Data) %>% + select(Ultimo = Preco) > > c Source: local data frame [3 x 2] Groups: Data [3] Data Ultimo (int) (dbl) 1 37988 38.05 2 37991 37.90 3 37992 38.90 > > > d<-cbind(a,b[,2],c[,2]) > d Data maximo minimo Primeiro Ultimo 1 37988 38.06 38.00 38.0 38.05 2 37991 72.23 32.23 37.9 37.90 3 37992 41.45 38.90 38.9 38.90 Em 12 de novembro de 2015 15:01, Thiago Serafim <thiago.serafim@gmail.com> escreveu: > Acabei de atualizar o R e o pacote dplyr. > > > sessionInfo() > R version 3.2.2 (2015-08-14) > Platform: x86_64-w64-mingw32/x64 (64-bit) > Running under: Windows 8 x64 (build 9200) > > locale: > [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 > LC_MONETARY=Portuguese_Brazil.1252 > [4] LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] dplyr_0.4.3 > > loaded via a namespace (and not attached): > [1] magrittr_1.5 R6_2.1.1 assertthat_0.1 parallel_3.2.2 DBI_0.3.1 > tools_3.2.2 Rcpp_0.12.1 > > Nessa versão do R e do dplyr, os seguintes comandos funcionam pra mim(um > pouco diferente da minha primeira sugestão) > > AA %>% group_by(Data) %>% filter(Hora == min(Hora)) %>% select(Primeiro > = Preco) > Source: local data frame [3 x 2] > Groups: Data [3] > > Data Primeiro > (int) (dbl) > 1 37988 38.0 > 2 37991 37.9 > 3 37992 38.9 > > AA %>% group_by(Data) %>% filter(Hora == max(Hora)) %>% select(Ultimo = > Preco) > Source: local data frame [3 x 2] > Groups: Data [3] > > Data Ultimo > (int) (dbl) > 1 37988 38.05 > 2 37991 37.90 > 3 37992 38.90 > > > > 2015-11-11 23:44 GMT-02:00 Mauro Sznelwar <sznelwar@uol.com.br>: > >> Porque quando rodo não dá certo? Eu coloquei os dois bancos de dados AA e >> DATA >> >> AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = >> min(Preco)) >> >> Error: index out of bounds >> >> >> >> > library(dplyr) >> >> > AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = >> min(Preco)) >> >> Source: local data frame [3 x 3] >> >> >> >> Data maximo minimo >> >> 1 37988 38.06 38.0 >> >> 2 37991 37.90 37.9 >> >> 3 37992 38.90 38.9 >> >> >> >> > AA %>% group_by(Data) %>% slice(which.min(Hora)) %>% select(Primeiro = >> Preco) >> >> Source: local data frame [3 x 2] >> >> Groups: Data >> >> >> >> Data Primeiro >> >> 1 37988 38.0 >> >> 2 37991 37.9 >> >> 3 37992 38.9 >> >> >> >> AA %>% group_by(Data) %>% slice(which.max(Hora)) %>% select(Ultimo = >> Preco) >> >> Source: local data frame [3 x 2] >> >> Groups: Data >> >> >> >> Data Ultimo >> >> 1 37988 38.05 >> >> 2 37991 37.90 >> >> 3 37992 38.90 >> >> >> >> >> >> 2015-11-11 14:28 GMT-02:00 salah <salah3.1416@gmail.com>: >> >> Olá, segue uma sugestão >> >> DADOS = structure(list(Data = c(37988L, 37988L, 37988L, 37988L, 37988L, >> 37988L, 37991L, 37991L, >> 37991L, 37991L, 37992L, 37992L, 37992L, >> 37992L), Hora = >> c(34251.038, 34263.36, 34296.73, 34301.369, >> 34318.91, 34324.707, >> 34398.295, 34400.585, 34416.511, 34425.892, >> 34250.443, 34252.127, >> 34266.757, 34273.928), X1 = c(-1, -1, >> 38.05, 38.06, 38.06, >> 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, >> 38.85, 38.85), X2 = >> c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, >> 1L, 1L, -1L, -1L, 1L, >> 1L), X3 = c(-1, -1, 38.08, 38.08, 38.07, >> 38.07, 38.3, 38.3, 37.95, >> 37.95, -1, -1, 38.95, 38.95), X4 = >> c(-1L, >> -1L, 1L, 1L, 1L, 1L, >> 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), Preco >> = c(38, >> 38, 38.05, 38.06, 38.06, >> 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, >> 38.9, 38.9, 38.9), Volume >> = c(600L, 5000L, 6000L, 1500L, 500L, >> 4500L, 161800L, 500L, >> 3700L, 1100L, 125000L, 1100L, 400L, 1000L >> )), .Names = c("Data", "Hora", "X1", >> "X2", "X3", >> "X4", "Preco", "Volume"), class = >> "data.frame", row.names = c(NA, >> -14L)) >> library(data.table) >> >> ## converte data.frame para data.table >> setDT(DADOS) >> ## em list voce pode escolher max, min, mean, sd, etc. Em by voce >> escolhe por preco >> ## por Data, qual variavel que deseja >> >> ## por volume e data >> DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data, >> Volume)] >> >> ## por data >> DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data)] >> >> ?data.table >> >> >> >> Em Qua, 2015-11-11 às 13:00 -0200, Michelle Bau Graczyk escreveu: >> > Caros, bom dia… >> > >> > >> > Estou com uma dúvida bem boba mas não consigo resolver! >> > >> > >> > Eu tenho um data frame que a primeira coluna é a data, a segunda é o >> > horário e as outras seis são dados como preço e volume. >> > Os dias estão em forma numérica e eu os deixei assim porque achei que >> > seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache >> > o valor inicial e final do preço assim como o seu máximo e seu mínimo. >> > Estou tendo problemas somente em trocar de dia. >> > Abaixo segue um pedaço reduzido do data frame e o código. >> > Alguém poderia me dar uma dica? >> > Muito obrigada! >> > AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE >> > + ,dec=".",as.is=TRUE, sep=",") >> > > #AA >> > > dput(AA) >> > structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, >> > 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, >> > 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, >> > 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, >> > 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, >> > 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, >> > 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, >> > 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, >> > 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = >> > c(-1L, >> > -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = >> > c(38, >> > 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, >> > 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, >> > 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L >> > )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", >> > "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, >> > -14L)) >> > > >> > > matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. >> > > colnames(matriz)<-c("open","close","low","higth") >> > > i<-1 >> > > for( x in 37988:38000){ >> > + >> > + >> > + #x<-37988 >> > + >> > + if(AA$data==x){ >> > + AA1<-subset(AA,AA$data==x) >> > + matriz[i,1]<-AA1[1,7] >> > + matriz[i,2]<-AA1[nrow(AA1),7] >> > + matriz[i,3]<-min(AA1$last) >> > + matriz[i,4]<-max(AA1$last) >> > + >> > + i=i+1 >> > + } >> > + >> > AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE >> > + ,dec=".",as.is=TRUE, sep=",") >> > + #AA >> > + dput(AA) >> > + >> > + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. >> > + colnames(matriz)<-c("open","close","low","higth") >> > + i<-1 >> > + for( x in 37988:37992){ >> > + >> > + >> > + >> > + >> > + if(AA$data==x){ >> > + AA1<-subset(AA,AA$data==x) >> > + matriz[i,1]<-AA1[1,7] >> > + matriz[i,2]<-AA1[nrow(AA1),7] >> > + matriz[i,3]<-min(AA1$last) >> > + matriz[i,4]<-max(AA1$last) >> > + >> > + i=i+1 >> > + } >> > + } >> > + matriz >> > + write.table(matriz,"Matriz4ParametrosPreço.txt") >> > + >> >> > _______________________________________________ >> > R-br mailing list >> > R-br@listas.c3sl.ufpr.br >> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea >> cdigo mnimo reproduzvel. >> >> >> _______________________________________________ >> R-br mailing list >> R-br@listas.c3sl.ufpr.br >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea >> cdigo mnimo reproduzvel. >> >> >> >> >> ------------------------------ >> [image: Avast logo] <https://www.avast.com/antivirus> >> >> Este email foi escaneado pelo Avast antivírus. >> www.avast.com <https://www.avast.com/antivirus> >> >> >> _______________________________________________ >> R-br mailing list >> R-br@listas.c3sl.ufpr.br >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >> código mínimo reproduzível. >> > > > _______________________________________________ > R-br mailing list > R-br@listas.c3sl.ufpr.br > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. >

Na versão 0.5 do dplyr já não será preciso fazer esse ajuste que você fez(usando o ungroup). https://github.com/hadley/dplyr/issues/1405 https://github.com/hadley/dplyr/issues/1341 2015-11-12 16:02 GMT-02:00 Michelle Bau Graczyk <mbgraczyk@gmail.com>: > Para mim, eu tive que fazer um ajuste um pouco diferente mas vou testar o > que você fez também.Muuito obrigada! Estou mandando o que eu fiz abaixo: > > > > AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE > + ,dec=".",as.is=TRUE, sep=",",, > col.names=c("Data","hora", "bid","bidQ","ask","askQ","Preco","volume")) > > library(dplyr) > > a<-AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = > min(Preco)) > > a > Source: local data frame [3 x 3] > > Data maximo minimo > (int) (dbl) (dbl) > 1 37988 38.06 38.00 > 2 37991 72.23 32.23 > 3 37992 41.45 38.90 > > > > > > b<-AA %>% > + group_by(Data) %>% > + slice(which.min(hora)) %>% > + ungroup %>% > + group_by(Data) %>% > + select(Primeiro = Preco) > > b > Source: local data frame [3 x 2] > Groups: Data [3] > > Data Primeiro > (int) (dbl) > 1 37988 38.0 > 2 37991 37.9 > 3 37992 38.9 > > > > > > > > c<-AA %>% > + group_by(Data) %>% > + slice(which.max(hora)) %>% > + ungroup %>% > + group_by(Data) %>% > + select(Ultimo = Preco) > > > > c > Source: local data frame [3 x 2] > Groups: Data [3] > > Data Ultimo > (int) (dbl) > 1 37988 38.05 > 2 37991 37.90 > 3 37992 38.90 > > > > > > d<-cbind(a,b[,2],c[,2]) > > d > Data maximo minimo Primeiro Ultimo > 1 37988 38.06 38.00 38.0 38.05 > 2 37991 72.23 32.23 37.9 37.90 > 3 37992 41.45 38.90 38.9 38.90 > > Em 12 de novembro de 2015 15:01, Thiago Serafim <thiago.serafim@gmail.com> > escreveu: > >> Acabei de atualizar o R e o pacote dplyr. >> >> > sessionInfo() >> R version 3.2.2 (2015-08-14) >> Platform: x86_64-w64-mingw32/x64 (64-bit) >> Running under: Windows 8 x64 (build 9200) >> >> locale: >> [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 >> LC_MONETARY=Portuguese_Brazil.1252 >> [4] LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252 >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods base >> >> other attached packages: >> [1] dplyr_0.4.3 >> >> loaded via a namespace (and not attached): >> [1] magrittr_1.5 R6_2.1.1 assertthat_0.1 parallel_3.2.2 DBI_0.3.1 >> tools_3.2.2 Rcpp_0.12.1 >> >> Nessa versão do R e do dplyr, os seguintes comandos funcionam pra mim(um >> pouco diferente da minha primeira sugestão) >> > AA %>% group_by(Data) %>% filter(Hora == min(Hora)) %>% select(Primeiro >> = Preco) >> Source: local data frame [3 x 2] >> Groups: Data [3] >> >> Data Primeiro >> (int) (dbl) >> 1 37988 38.0 >> 2 37991 37.9 >> 3 37992 38.9 >> > AA %>% group_by(Data) %>% filter(Hora == max(Hora)) %>% select(Ultimo = >> Preco) >> Source: local data frame [3 x 2] >> Groups: Data [3] >> >> Data Ultimo >> (int) (dbl) >> 1 37988 38.05 >> 2 37991 37.90 >> 3 37992 38.90 >> >> >> >> 2015-11-11 23:44 GMT-02:00 Mauro Sznelwar <sznelwar@uol.com.br>: >> >>> Porque quando rodo não dá certo? Eu coloquei os dois bancos de dados AA >>> e DATA >>> >>> AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = >>> min(Preco)) >>> >>> Error: index out of bounds >>> >>> >>> >>> > library(dplyr) >>> >>> > AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = >>> min(Preco)) >>> >>> Source: local data frame [3 x 3] >>> >>> >>> >>> Data maximo minimo >>> >>> 1 37988 38.06 38.0 >>> >>> 2 37991 37.90 37.9 >>> >>> 3 37992 38.90 38.9 >>> >>> >>> >>> > AA %>% group_by(Data) %>% slice(which.min(Hora)) %>% select(Primeiro = >>> Preco) >>> >>> Source: local data frame [3 x 2] >>> >>> Groups: Data >>> >>> >>> >>> Data Primeiro >>> >>> 1 37988 38.0 >>> >>> 2 37991 37.9 >>> >>> 3 37992 38.9 >>> >>> >>> >>> AA %>% group_by(Data) %>% slice(which.max(Hora)) %>% select(Ultimo = >>> Preco) >>> >>> Source: local data frame [3 x 2] >>> >>> Groups: Data >>> >>> >>> >>> Data Ultimo >>> >>> 1 37988 38.05 >>> >>> 2 37991 37.90 >>> >>> 3 37992 38.90 >>> >>> >>> >>> >>> >>> 2015-11-11 14:28 GMT-02:00 salah <salah3.1416@gmail.com>: >>> >>> Olá, segue uma sugestão >>> >>> DADOS = structure(list(Data = c(37988L, 37988L, 37988L, 37988L, 37988L, >>> 37988L, 37991L, 37991L, >>> 37991L, 37991L, 37992L, 37992L, 37992L, >>> 37992L), Hora = >>> c(34251.038, 34263.36, 34296.73, 34301.369, >>> 34318.91, 34324.707, >>> 34398.295, 34400.585, 34416.511, 34425.892, >>> 34250.443, 34252.127, >>> 34266.757, 34273.928), X1 = c(-1, -1, >>> 38.05, 38.06, 38.06, >>> 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, >>> 38.85, 38.85), X2 = >>> c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, >>> 1L, 1L, -1L, -1L, 1L, >>> 1L), X3 = c(-1, -1, 38.08, 38.08, 38.07, >>> 38.07, 38.3, 38.3, >>> 37.95, 37.95, -1, -1, 38.95, 38.95), X4 = >>> c(-1L, >>> -1L, 1L, 1L, 1L, 1L, >>> 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), Preco >>> = c(38, >>> 38, 38.05, 38.06, 38.06, >>> 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, >>> 38.9, 38.9, 38.9), >>> Volume = c(600L, 5000L, 6000L, 1500L, 500L, >>> 4500L, 161800L, 500L, >>> 3700L, 1100L, 125000L, 1100L, 400L, 1000L >>> )), .Names = c("Data", "Hora", "X1", >>> "X2", "X3", >>> "X4", "Preco", "Volume"), class = >>> "data.frame", row.names = c(NA, >>> -14L)) >>> library(data.table) >>> >>> ## converte data.frame para data.table >>> setDT(DADOS) >>> ## em list voce pode escolher max, min, mean, sd, etc. Em by voce >>> escolhe por preco >>> ## por Data, qual variavel que deseja >>> >>> ## por volume e data >>> DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data, >>> Volume)] >>> >>> ## por data >>> DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data)] >>> >>> ?data.table >>> >>> >>> >>> Em Qua, 2015-11-11 às 13:00 -0200, Michelle Bau Graczyk escreveu: >>> > Caros, bom dia… >>> > >>> > >>> > Estou com uma dúvida bem boba mas não consigo resolver! >>> > >>> > >>> > Eu tenho um data frame que a primeira coluna é a data, a segunda é o >>> > horário e as outras seis são dados como preço e volume. >>> > Os dias estão em forma numérica e eu os deixei assim porque achei que >>> > seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache >>> > o valor inicial e final do preço assim como o seu máximo e seu mínimo. >>> > Estou tendo problemas somente em trocar de dia. >>> > Abaixo segue um pedaço reduzido do data frame e o código. >>> > Alguém poderia me dar uma dica? >>> > Muito obrigada! >>> > >>> AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE >>> > + ,dec=".",as.is=TRUE, sep=",") >>> > > #AA >>> > > dput(AA) >>> > structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, >>> > 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, >>> > 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, >>> > 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, >>> > 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, >>> > 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, >>> > 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, >>> > 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, >>> > 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = >>> > c(-1L, >>> > -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = >>> > c(38, >>> > 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, >>> > 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, >>> > 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L >>> > )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", >>> > "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, >>> > -14L)) >>> > > >>> > > matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. >>> > > colnames(matriz)<-c("open","close","low","higth") >>> > > i<-1 >>> > > for( x in 37988:38000){ >>> > + >>> > + >>> > + #x<-37988 >>> > + >>> > + if(AA$data==x){ >>> > + AA1<-subset(AA,AA$data==x) >>> > + matriz[i,1]<-AA1[1,7] >>> > + matriz[i,2]<-AA1[nrow(AA1),7] >>> > + matriz[i,3]<-min(AA1$last) >>> > + matriz[i,4]<-max(AA1$last) >>> > + >>> > + i=i+1 >>> > + } >>> > + >>> > >>> AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE >>> > + ,dec=".",as.is=TRUE, sep=",") >>> > + #AA >>> > + dput(AA) >>> > + >>> > + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. >>> > + colnames(matriz)<-c("open","close","low","higth") >>> > + i<-1 >>> > + for( x in 37988:37992){ >>> > + >>> > + >>> > + >>> > + >>> > + if(AA$data==x){ >>> > + AA1<-subset(AA,AA$data==x) >>> > + matriz[i,1]<-AA1[1,7] >>> > + matriz[i,2]<-AA1[nrow(AA1),7] >>> > + matriz[i,3]<-min(AA1$last) >>> > + matriz[i,4]<-max(AA1$last) >>> > + >>> > + i=i+1 >>> > + } >>> > + } >>> > + matriz >>> > + write.table(matriz,"Matriz4ParametrosPreço.txt") >>> > + >>> >>> > _______________________________________________ >>> > R-br mailing list >>> > R-br@listas.c3sl.ufpr.br >>> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea >>> cdigo mnimo reproduzvel. >>> >>> >>> _______________________________________________ >>> R-br mailing list >>> R-br@listas.c3sl.ufpr.br >>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea >>> cdigo mnimo reproduzvel. >>> >>> >>> >>> >>> ------------------------------ >>> [image: Avast logo] <https://www.avast.com/antivirus> >>> >>> Este email foi escaneado pelo Avast antivírus. >>> www.avast.com <https://www.avast.com/antivirus> >>> >>> >>> _______________________________________________ >>> R-br mailing list >>> R-br@listas.c3sl.ufpr.br >>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >>> código mínimo reproduzível. >>> >> >> >> _______________________________________________ >> R-br mailing list >> R-br@listas.c3sl.ufpr.br >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >> código mínimo reproduzível. >> > > > _______________________________________________ > R-br mailing list > R-br@listas.c3sl.ufpr.br > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. >

Onde eu pego este arquivo ExemploReduzdo.csv? Se alguém puder enviar para mim em particular seria melhor. Para mim, eu tive que fazer um ajuste um pouco diferente mas vou testar o que você fez também.Muuito obrigada! Estou mandando o que eu fiz abaixo:
AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE
+ ,dec=".",as.is=TRUE, sep=",",, col.names=c("Data","hora", "bid","bidQ","ask","askQ","Preco","volume"))
library(dplyr)
a<-AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco))
a
Source: local data frame [3 x 3] Data maximo minimo (int) (dbl) (dbl) 1 37988 38.06 38.00 2 37991 72.23 32.23 3 37992 41.45 38.90
b<-AA %>%
+ group_by(Data) %>% + slice(which.min(hora)) %>% + ungroup %>% + group_by(Data) %>% + select(Primeiro = Preco)
b
Source: local data frame [3 x 2] Groups: Data [3] Data Primeiro (int) (dbl) 1 37988 38.0 2 37991 37.9 3 37992 38.9
c<-AA %>%
+ group_by(Data) %>% + slice(which.max(hora)) %>% + ungroup %>% + group_by(Data) %>% + select(Ultimo = Preco)
c
Source: local data frame [3 x 2] Groups: Data [3] Data Ultimo (int) (dbl) 1 37988 38.05 2 37991 37.90 3 37992 38.90
d<-cbind(a,b[,2],c[,2])
d
Data maximo minimo Primeiro Ultimo 1 37988 38.06 38.00 38.0 38.05 2 37991 72.23 32.23 37.9 37.90 3 37992 41.45 38.90 38.9 38.90 Em 12 de novembro de 2015 15:01, Thiago Serafim <thiago.serafim@gmail.com> escreveu: Acabei de atualizar o R e o pacote dplyr.
sessionInfo()
R version 3.2.2 (2015-08-14) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 8 x64 (build 9200) locale: [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 LC_MONETARY=Portuguese_Brazil.1252 [4] LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] dplyr_0.4.3 loaded via a namespace (and not attached): [1] magrittr_1.5 R6_2.1.1 assertthat_0.1 parallel_3.2.2 DBI_0.3.1 tools_3.2.2 Rcpp_0.12.1 Nessa versão do R e do dplyr, os seguintes comandos funcionam pra mim(um pouco diferente da minha primeira sugestão)
AA %>% group_by(Data) %>% filter(Hora == min(Hora)) %>% select(Primeiro = Preco)
Source: local data frame [3 x 2] Groups: Data [3] Data Primeiro (int) (dbl) 1 37988 38.0 2 37991 37.9 3 37992 38.9
AA %>% group_by(Data) %>% filter(Hora == max(Hora)) %>% select(Ultimo = Preco)
Source: local data frame [3 x 2] Groups: Data [3] Data Ultimo (int) (dbl) 1 37988 38.05 2 37991 37.90 3 37992 38.90 2015-11-11 23:44 GMT-02:00 Mauro Sznelwar <sznelwar@uol.com.br>: Porque quando rodo não dá certo? Eu coloquei os dois bancos de dados AA e DATA AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco)) Error: index out of bounds
library(dplyr)
AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco))
Source: local data frame [3 x 3] Data maximo minimo 1 37988 38.06 38.0 2 37991 37.90 37.9 3 37992 38.90 38.9
AA %>% group_by(Data) %>% slice(which.min(Hora)) %>% select(Primeiro = Preco)
Source: local data frame [3 x 2] Groups: Data Data Primeiro 1 37988 38.0 2 37991 37.9 3 37992 38.9 AA %>% group_by(Data) %>% slice(which.max(Hora)) %>% select(Ultimo = Preco) Source: local data frame [3 x 2] Groups: Data Data Ultimo 1 37988 38.05 2 37991 37.90 3 37992 38.90 2015-11-11 14:28 GMT-02:00 salah <salah3.1416@gmail.com>: Olá, segue uma sugestão DADOS = structure(list(Data = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), Hora = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X2 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X3 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X4 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), Preco = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), Volume = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("Data", "Hora", "X1", "X2", "X3", "X4", "Preco", "Volume"), class = "data.frame", row.names = c(NA, -14L)) library(data.table) ## converte data.frame para data.table setDT(DADOS) ## em list voce pode escolher max, min, mean, sd, etc. Em by voce escolhe por preco ## por Data, qual variavel que deseja ## por volume e data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data, Volume)] ## por data DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data)] ?data.table Em Qua, 2015-11-11 às 13:00 -0200, Michelle Bau Graczyk escreveu:
Caros, bom dia…
Estou com uma dúvida bem boba mas não consigo resolver!
#AA dput(AA) structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, -14L))
matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. colnames(matriz)<-c("open","close","low","higth") i<-1 for( x in 37988:38000){
Eu tenho um data frame que a primeira coluna é a data, a segunda é o horário e as outras seis são dados como preço e volume. Os dias estão em forma numérica e eu os deixei assim porque achei que seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache o valor inicial e final do preço assim como o seu máximo e seu mínimo. Estou tendo problemas somente em trocar de dia. Abaixo segue um pedaço reduzido do data frame e o código. Alguém poderia me dar uma dica? Muito obrigada! AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + + + #x<-37988 + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + #AA + dput(AA) + + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. + colnames(matriz)<-c("open","close","low","higth") + i<-1 + for( x in 37988:37992){ + + + + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + } + matriz + write.table(matriz,"Matriz4ParametrosPreço.txt") +
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel. _____ <https://www.avast.com/antivirus> Avast logo Este email foi escaneado pelo Avast antivírus. www.avast.com <https://www.avast.com/antivirus> _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível. _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível. --- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus

Oi Thiago, Eu não respondi antes porque o meu deu um erro e eu estava tentando resolver mas não consegui. O erro que dá é: > AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",",, col.names=c("Data","hora", "bid","bidQ","ask","askQ","Preco","volume")) > library(dplyr) > a<-AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = min(Preco)) > a Source: local data frame [3 x 3] Data maximo minimo 1 37988 38.06 38.00 2 37991 72.23 32.23 3 37992 41.45 38.90 > > > b<-AA %>% group_by(Data) %>% slice(which.min(Hora)) %>% select(Primeiro = Preco) Erro em eval(expr, envir, enclos) : não foi possível encontrar a função "slice" Eu tentei desinstalar e instalar de novo e nada. Você saberia me dizer como posso arrumar? Muito obrigada pelas dicas que foram ótimas e de aprendizado para mim! Em 11 de novembro de 2015 15:19, Thiago Serafim <thiago.serafim@gmail.com> escreveu: > Para manipulação de dados eu sugiro o pacote dplyr. E acho que o operador > %>% torna a manipulação mais intuitiva. > Tem um bom tutorial aqui: http://rpubs.com/justmarkham/dplyr-tutorial > > > library(dplyr) > > AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = > min(Preco)) > Source: local data frame [3 x 3] > > Data maximo minimo > 1 37988 38.06 38.0 > 2 37991 37.90 37.9 > 3 37992 38.90 38.9 > > > AA %>% group_by(Data) %>% slice(which.min(Hora)) %>% select(Primeiro = > Preco) > Source: local data frame [3 x 2] > Groups: Data > > Data Primeiro > 1 37988 38.0 > 2 37991 37.9 > 3 37992 38.9 > > AA %>% group_by(Data) %>% slice(which.max(Hora)) %>% select(Ultimo = Preco) > Source: local data frame [3 x 2] > Groups: Data > > Data Ultimo > 1 37988 38.05 > 2 37991 37.90 > 3 37992 38.90 > > > 2015-11-11 14:28 GMT-02:00 salah <salah3.1416@gmail.com>: > >> Olá, segue uma sugestão >> >> DADOS = structure(list(Data = c(37988L, 37988L, 37988L, 37988L, 37988L, >> 37988L, 37991L, 37991L, >> 37991L, 37991L, 37992L, 37992L, 37992L, >> 37992L), Hora = >> c(34251.038, 34263.36, 34296.73, 34301.369, >> 34318.91, 34324.707, >> 34398.295, 34400.585, 34416.511, 34425.892, >> 34250.443, 34252.127, >> 34266.757, 34273.928), X1 = c(-1, -1, >> 38.05, 38.06, 38.06, >> 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, >> 38.85, 38.85), X2 = >> c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, >> 1L, 1L, -1L, -1L, 1L, >> 1L), X3 = c(-1, -1, 38.08, 38.08, 38.07, >> 38.07, 38.3, 38.3, 37.95, >> 37.95, -1, -1, 38.95, 38.95), X4 = >> c(-1L, >> -1L, 1L, 1L, 1L, 1L, >> 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), Preco >> = c(38, >> 38, 38.05, 38.06, 38.06, >> 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, >> 38.9, 38.9, 38.9), Volume >> = c(600L, 5000L, 6000L, 1500L, 500L, >> 4500L, 161800L, 500L, >> 3700L, 1100L, 125000L, 1100L, 400L, 1000L >> )), .Names = c("Data", "Hora", "X1", >> "X2", "X3", >> "X4", "Preco", "Volume"), class = >> "data.frame", row.names = c(NA, >> -14L)) >> library(data.table) >> >> ## converte data.frame para data.table >> setDT(DADOS) >> ## em list voce pode escolher max, min, mean, sd, etc. Em by voce >> escolhe por preco >> ## por Data, qual variavel que deseja >> >> ## por volume e data >> DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data, >> Volume)] >> >> ## por data >> DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data)] >> >> ?data.table >> >> >> Em Qua, 2015-11-11 às 13:00 -0200, Michelle Bau Graczyk escreveu: >> > Caros, bom dia… >> > >> > >> > Estou com uma dúvida bem boba mas não consigo resolver! >> > >> > >> > Eu tenho um data frame que a primeira coluna é a data, a segunda é o >> > horário e as outras seis são dados como preço e volume. >> > Os dias estão em forma numérica e eu os deixei assim porque achei que >> > seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache >> > o valor inicial e final do preço assim como o seu máximo e seu mínimo. >> > Estou tendo problemas somente em trocar de dia. >> > Abaixo segue um pedaço reduzido do data frame e o código. >> > Alguém poderia me dar uma dica? >> > Muito obrigada! >> > AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE >> > + ,dec=".",as.is=TRUE, sep=",") >> > > #AA >> > > dput(AA) >> > structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, >> > 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, >> > 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, >> > 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, >> > 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, >> > 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, >> > 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, >> > 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, >> > 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = >> > c(-1L, >> > -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = >> > c(38, >> > 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, >> > 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, >> > 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L >> > )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", >> > "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, >> > -14L)) >> > > >> > > matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. >> > > colnames(matriz)<-c("open","close","low","higth") >> > > i<-1 >> > > for( x in 37988:38000){ >> > + >> > + >> > + #x<-37988 >> > + >> > + if(AA$data==x){ >> > + AA1<-subset(AA,AA$data==x) >> > + matriz[i,1]<-AA1[1,7] >> > + matriz[i,2]<-AA1[nrow(AA1),7] >> > + matriz[i,3]<-min(AA1$last) >> > + matriz[i,4]<-max(AA1$last) >> > + >> > + i=i+1 >> > + } >> > + >> > AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE >> > + ,dec=".",as.is=TRUE, sep=",") >> > + #AA >> > + dput(AA) >> > + >> > + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. >> > + colnames(matriz)<-c("open","close","low","higth") >> > + i<-1 >> > + for( x in 37988:37992){ >> > + >> > + >> > + >> > + >> > + if(AA$data==x){ >> > + AA1<-subset(AA,AA$data==x) >> > + matriz[i,1]<-AA1[1,7] >> > + matriz[i,2]<-AA1[nrow(AA1),7] >> > + matriz[i,3]<-min(AA1$last) >> > + matriz[i,4]<-max(AA1$last) >> > + >> > + i=i+1 >> > + } >> > + } >> > + matriz >> > + write.table(matriz,"Matriz4ParametrosPreço.txt") >> > + >> > _______________________________________________ >> > R-br mailing list >> > R-br@listas.c3sl.ufpr.br >> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea >> cdigo mnimo reproduzvel. >> >> >> _______________________________________________ >> R-br mailing list >> R-br@listas.c3sl.ufpr.br >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea >> cdigo mnimo reproduzvel. > > > > _______________________________________________ > R-br mailing list > R-br@listas.c3sl.ufpr.br > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. >

Já descobir, eu preciso atualizar o R para ele baixar o pacote dplyr 0.3. Muito obrigada de novo! Em 12 de novembro de 2015 12:18, Michelle Bau Graczyk <mbgraczyk@gmail.com> escreveu: > Oi Thiago, > > Eu não respondi antes porque o meu deu um erro e eu estava tentando > resolver mas não consegui. > O erro que dá é: > > AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE > + ,dec=".",as.is=TRUE, sep=",",, > col.names=c("Data","hora", "bid","bidQ","ask","askQ","Preco","volume")) > > library(dplyr) > > a<-AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = > min(Preco)) > > a > Source: local data frame [3 x 3] > > Data maximo minimo > 1 37988 38.06 38.00 > 2 37991 72.23 32.23 > 3 37992 41.45 38.90 > > > > > > b<-AA %>% group_by(Data) %>% slice(which.min(Hora)) %>% select(Primeiro > = Preco) > Erro em eval(expr, envir, enclos) : > não foi possível encontrar a função "slice" > > Eu tentei desinstalar e instalar de novo e nada. Você saberia me dizer > como posso arrumar? > > Muito obrigada pelas dicas que foram ótimas e de aprendizado para mim! > > Em 11 de novembro de 2015 15:19, Thiago Serafim <thiago.serafim@gmail.com> > escreveu: > >> Para manipulação de dados eu sugiro o pacote dplyr. E acho que o operador >> %>% torna a manipulação mais intuitiva. >> Tem um bom tutorial aqui: http://rpubs.com/justmarkham/dplyr-tutorial >> >> > library(dplyr) >> > AA %>% group_by(Data) %>% summarise(maximo = max(Preco), minimo = >> min(Preco)) >> Source: local data frame [3 x 3] >> >> Data maximo minimo >> 1 37988 38.06 38.0 >> 2 37991 37.90 37.9 >> 3 37992 38.90 38.9 >> >> > AA %>% group_by(Data) %>% slice(which.min(Hora)) %>% select(Primeiro = >> Preco) >> Source: local data frame [3 x 2] >> Groups: Data >> >> Data Primeiro >> 1 37988 38.0 >> 2 37991 37.9 >> 3 37992 38.9 >> >> AA %>% group_by(Data) %>% slice(which.max(Hora)) %>% select(Ultimo = >> Preco) >> Source: local data frame [3 x 2] >> Groups: Data >> >> Data Ultimo >> 1 37988 38.05 >> 2 37991 37.90 >> 3 37992 38.90 >> >> >> 2015-11-11 14:28 GMT-02:00 salah <salah3.1416@gmail.com>: >> >>> Olá, segue uma sugestão >>> >>> DADOS = structure(list(Data = c(37988L, 37988L, 37988L, 37988L, 37988L, >>> 37988L, 37991L, 37991L, >>> 37991L, 37991L, 37992L, 37992L, 37992L, >>> 37992L), Hora = >>> c(34251.038, 34263.36, 34296.73, 34301.369, >>> 34318.91, 34324.707, >>> 34398.295, 34400.585, 34416.511, 34425.892, >>> 34250.443, 34252.127, >>> 34266.757, 34273.928), X1 = c(-1, -1, >>> 38.05, 38.06, 38.06, >>> 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, >>> 38.85, 38.85), X2 = >>> c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, >>> 1L, 1L, -1L, -1L, 1L, >>> 1L), X3 = c(-1, -1, 38.08, 38.08, 38.07, >>> 38.07, 38.3, 38.3, >>> 37.95, 37.95, -1, -1, 38.95, 38.95), X4 = >>> c(-1L, >>> -1L, 1L, 1L, 1L, 1L, >>> 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), Preco >>> = c(38, >>> 38, 38.05, 38.06, 38.06, >>> 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, >>> 38.9, 38.9, 38.9), >>> Volume = c(600L, 5000L, 6000L, 1500L, 500L, >>> 4500L, 161800L, 500L, >>> 3700L, 1100L, 125000L, 1100L, 400L, 1000L >>> )), .Names = c("Data", "Hora", "X1", >>> "X2", "X3", >>> "X4", "Preco", "Volume"), class = >>> "data.frame", row.names = c(NA, >>> -14L)) >>> library(data.table) >>> >>> ## converte data.frame para data.table >>> setDT(DADOS) >>> ## em list voce pode escolher max, min, mean, sd, etc. Em by voce >>> escolhe por preco >>> ## por Data, qual variavel que deseja >>> >>> ## por volume e data >>> DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data, >>> Volume)] >>> >>> ## por data >>> DADOS[, list(Precomax=max(Preco), Precomin=min(Preco)), by = .(Data)] >>> >>> ?data.table >>> >>> >>> Em Qua, 2015-11-11 às 13:00 -0200, Michelle Bau Graczyk escreveu: >>> > Caros, bom dia… >>> > >>> > >>> > Estou com uma dúvida bem boba mas não consigo resolver! >>> > >>> > >>> > Eu tenho um data frame que a primeira coluna é a data, a segunda é o >>> > horário e as outras seis são dados como preço e volume. >>> > Os dias estão em forma numérica e eu os deixei assim porque achei que >>> > seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache >>> > o valor inicial e final do preço assim como o seu máximo e seu mínimo. >>> > Estou tendo problemas somente em trocar de dia. >>> > Abaixo segue um pedaço reduzido do data frame e o código. >>> > Alguém poderia me dar uma dica? >>> > Muito obrigada! >>> > >>> AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE >>> > + ,dec=".",as.is=TRUE, sep=",") >>> > > #AA >>> > > dput(AA) >>> > structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, >>> > 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, >>> > 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, >>> > 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, >>> > 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, >>> > 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, >>> > 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, >>> > 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, >>> > 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = >>> > c(-1L, >>> > -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = >>> > c(38, >>> > 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, >>> > 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, >>> > 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L >>> > )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", >>> > "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, >>> > -14L)) >>> > > >>> > > matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. >>> > > colnames(matriz)<-c("open","close","low","higth") >>> > > i<-1 >>> > > for( x in 37988:38000){ >>> > + >>> > + >>> > + #x<-37988 >>> > + >>> > + if(AA$data==x){ >>> > + AA1<-subset(AA,AA$data==x) >>> > + matriz[i,1]<-AA1[1,7] >>> > + matriz[i,2]<-AA1[nrow(AA1),7] >>> > + matriz[i,3]<-min(AA1$last) >>> > + matriz[i,4]<-max(AA1$last) >>> > + >>> > + i=i+1 >>> > + } >>> > + >>> > >>> AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE >>> > + ,dec=".",as.is=TRUE, sep=",") >>> > + #AA >>> > + dput(AA) >>> > + >>> > + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. >>> > + colnames(matriz)<-c("open","close","low","higth") >>> > + i<-1 >>> > + for( x in 37988:37992){ >>> > + >>> > + >>> > + >>> > + >>> > + if(AA$data==x){ >>> > + AA1<-subset(AA,AA$data==x) >>> > + matriz[i,1]<-AA1[1,7] >>> > + matriz[i,2]<-AA1[nrow(AA1),7] >>> > + matriz[i,3]<-min(AA1$last) >>> > + matriz[i,4]<-max(AA1$last) >>> > + >>> > + i=i+1 >>> > + } >>> > + } >>> > + matriz >>> > + write.table(matriz,"Matriz4ParametrosPreço.txt") >>> > + >>> > _______________________________________________ >>> > R-br mailing list >>> > R-br@listas.c3sl.ufpr.br >>> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea >>> cdigo mnimo reproduzvel. >>> >>> >>> _______________________________________________ >>> R-br mailing list >>> R-br@listas.c3sl.ufpr.br >>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea >>> cdigo mnimo reproduzvel. >> >> >> >> _______________________________________________ >> R-br mailing list >> R-br@listas.c3sl.ufpr.br >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >> código mínimo reproduzível. >> > >

Olá! Você só precisa da função "tapply"... Abs Em 11 de novembro de 2015 13:00, Michelle Bau Graczyk <mbgraczyk@gmail.com> escreveu:
Caros, bom dia…
Estou com uma dúvida bem boba mas não consigo resolver!
#AA dput(AA) structure(list(X37988 = c(37988L, 37988L, 37988L, 37988L, 37988L, 37988L, 37991L, 37991L, 37991L, 37991L, 37992L, 37992L, 37992L, 37992L), X34244.059 = c(34251.038, 34263.36, 34296.73, 34301.369, 34318.91, 34324.707, 34398.295, 34400.585, 34416.511, 34425.892, 34250.443, 34252.127, 34266.757, 34273.928), X.1 = c(-1, -1, 38.05, 38.06, 38.06, 38.04, 37.8, 37.8, 37.85, 37.85, -1, -1, 38.85, 38.85), X.1.1 = c(-1L, -1L, 32L, 2L, 4L, 1L, 50L, 50L, 1L, 1L, -1L, -1L, 1L, 1L), X.1.2 = c(-1, -1, 38.08, 38.08, 38.07, 38.07, 38.3, 38.3, 37.95, 37.95, -1, -1, 38.95, 38.95), X.1.3 = c(-1L, -1L, 1L, 1L, 1L, 1L, 203L, 203L, 1L, 1L, -1L, -1L, 1L, 1L), X38 = c(38, 38, 38.05, 38.06, 38.06, 38.05, 37.9, 37.9, 37.9, 37.9, 38.9, 38.9, 38.9, 38.9), X55900 = c(600L, 5000L, 6000L, 1500L, 500L, 4500L, 161800L, 500L, 3700L, 1100L, 125000L, 1100L, 400L, 1000L )), .Names = c("X37988", "X34244.059", "X.1", "X.1.1", "X.1.2", "X.1.3", "X38", "X55900"), class = "data.frame", row.names = c(NA, -14L))
matriz<-matrix(NA,230,4)## numero de linhas é o numero de dias. colnames(matriz)<-c("open","close","low","higth") i<-1 for( x in 37988:38000){
Eu tenho um data frame que a primeira coluna é a data, a segunda é o horário e as outras seis são dados como preço e volume. Os dias estão em forma numérica e eu os deixei assim porque achei que seria mais fácil fazer o laço. O objetivo é que para cada daia eu ache o valor inicial e final do preço assim como o seu máximo e seu mínimo. Estou tendo problemas somente em trocar de dia. Abaixo segue um pedaço reduzido do data frame e o código. Alguém poderia me dar uma dica? Muito obrigada! AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + + + #x<-37988 + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + AA<-read.table("/Users/bau/Dropbox/AA.N_ExemploReduzido.csv",header=TRUE + ,dec=".",as.is=TRUE, sep=",") + #AA + dput(AA) + + matriz<-matrix(NA,3,4)## numero de linhas é o numero de dias. + colnames(matriz)<-c("open","close","low","higth") + i<-1 + for( x in 37988:37992){ + + + + + if(AA$data==x){ + AA1<-subset(AA,AA$data==x) + matriz[i,1]<-AA1[1,7] + matriz[i,2]<-AA1[nrow(AA1),7] + matriz[i,3]<-min(AA1$last) + matriz[i,4]<-max(AA1$last) + + i=i+1 + } + } + matriz + write.table(matriz,"Matriz4ParametrosPreço.txt") +
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- *Prof. Márcio Luís Moreira de Souza, M.Sc.* Biólogo (UFRRJ), Mestre em Eng. Biomédica (COPPE/UFRJ) Professor Assistente I, Classe A, Universidade Federal de Juiz de Fora Campus Avançado Governador Valadares http://lattes.cnpq.br/4578008002785684
participantes (5)
-
Mauro Sznelwar
-
Michelle Bau Graczyk
-
Márcio Souza
-
salah
-
Thiago Serafim