Tôi đang cố gắng lưu dữ liệu từ một vòng lặp kiểm tra lôgíc.Vòng lặp trong R: cách lưu kết quả đầu ra?
Vì vậy, tôi có các dữ liệu sau:
T1 <- matrix(seq(from=100000, to=6600000,length.out=676),26,26) # a matrix of 26X26 - here with illustrive values
minmax <- seq(from=1,to=49,by=1) # creates a sequence
Fstep <- 6569141.82/minmax # define a vector from 0 to 6569141.82 with 49 divisions
F <- rev(round(Fstep,0)) # round the vector values and re order them
F
Tôi đã runned vòng lặp sau
for (i in 1:49) {
print(T1 > F[i]) # I used print to see the results in the screen
}
vòng lặp này trả tôi 49 ma trận được điền vào với giá trị logic (True hoặc sai). Mỗi ma trận là phép so sánh T1 với mỗi 49 vị trí F [i] (F [1], ...., F [49])
Tôi cần có các giá trị trong các ma trận đó để tiếp tục sử dụng ma trận kề cho các lô mạng. Tuy nhiên, khi tôi không thể gán các giá trị logic đó cho một ma trận, không lưu chúng vào các giá trị csv bằng cách sử dụng "write.matrix".
Vì vậy, tôi cần phải có 49 - ma trận "W" được điền bằng các giá trị logic (T hoặc F). Tôi đã có những giá trị đó bởi vòng lặp ở trên nhưng tôi không thể lấy nó như một đối tượng hoặc như một bộ sưu tập của csv. các tập tin.
tôi đã cố gắng
W<-matrix(0,26,26) #create an empty matrix to assign the logical arguments
for (i in 1:49){
W[i] <- T1>F[i] # I used print to see the results in the screen
}
mà trả về cảnh báo sau đây
Warning messages:
1: In W[i] <- (T1 > F[i]) :
number of items to replace is not a multiple of replacement length
Tôi cũng đã cố gắng một môi trường khác, trong đó tất cả các ma trận tôi so sánh có cùng kích thước.
create.M <- function(F){ # a function to transform each position F[i] into a 26X26 matrix
for (i in 1:49) {
matrix(F[i],26,26)
}
}
Loop.T1 <- function(T1){ # a function to replicate T1(49 times)
for (i in 1:49) {
T1
}
}
và so sánh hai kết quả đầu ra
Loop.T1(T1)>create.M(F)
trả về
logical(0)
Nếu bạn đang đi để sử dụng cho-vòng bạn cần phải học chuyển nhượng đó là cần thiết trong vòng lặp. Nếu không thì không có gì bền "xảy ra". –