作者clsmbstu ()
看板R_Language
标题[问题] 在回圈中对矩阵特定区间赋值
时间Sat Feb 11 13:54:46 2017
[问题类型]:
程式谘询(我想用R做某件事情,但是我不知道要怎麽用R写出来)
[软体熟悉度]:
使用者(已经有用R做过不少作品)
[问题叙述]:
我想在回圈中对多个矩阵的某些部分(同样的行列位置)做取代,
但是我不知道怎麽写出一般化的code。
我原本想的是在这些矩阵的[1:161, 1]、[162:322, 2]、...、[806:966, 6]放进数列,
但红色那句显然行不通,想请教大家有没有其它的办法?谢谢!
[程式范例]:
evaluate <- function(...) {eval(parse(text = paste(..., sep = ".")))}
for (k in 1:7) {
assign(paste(LETTERS[k], "newdata", sep = "."),
matrix(NA, nrow = 966, ncol = 6))
# Generate "A.newdata", "B.newdata", ... ,and "G.newdata"
j <- 1
while (j <= ncol(evaluate(LETTERS[k], "newdata"))) {
evaluate(emotions[k], "newdata")[1:161+(j-1)*161, j] <- seq(0, 8, 0.05)
# length(seq(0, 8, 0.05)) = 161
j <- j + 1
}
# The rest of NAs will be substituted with ...
# other various values later in this for loop
}
[环境叙述]:
R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=Chinese (Traditional)_Taiwan.950
[2] LC_CTYPE=Chinese (Traditional)_Taiwan.950
[3] LC_MONETARY=Chinese (Traditional)_Taiwan.950
[4] LC_NUMERIC=C
[5] LC_TIME=Chinese (Traditional)_Taiwan.950
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] reshape2_1.4.2 ggplot2_2.2.1 nnet_7.3-12
loaded via a namespace (and not attached):
[1] colorspace_1.3-2 scales_0.4.1 magrittr_1.5 assertthat_0.1
[5] lazyeval_0.2.0 plyr_1.8.4 tools_3.3.2 gtable_0.2.0
[9] tibble_1.2 Rcpp_0.12.9 stringi_1.1.2 grid_3.3.2
[13] stringr_1.1.0 munsell_0.4.3
[关键字]:
矩阵 取代 回圈
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.42.156.132
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1486792488.A.690.html
1F:→ celestialgod: 为什麽要存成A.newdata, B.newdata... ? 02/11 16:15
2F:→ celestialgod: 存成newdata_list 就好啦 02/11 16:15
3F:→ celestialgod: 有现成的data structure,请善用 02/11 16:16
4F:→ celestialgod: 用eval去写的程式,可读性很差,很难maintain 02/11 16:16
5F:→ clsmbstu: 这些newdata是之後要拿来给不同模型predict用的 02/11 20:13
6F:→ clsmbstu: 我是真的一直没有善用list... 02/11 20:14