這裏應用的功能是示例數據:選擇n隨之而來的分組變量和r中
myd <- data.frame (matrix (sample (c("AB", "BB", "AA"), 100*100,
replace = T), ncol = 100))
variablenames= paste (rep (paste ("MR.", 1:10,sep = ""),
each = 10), 1:100, sep = ".")
names(myd) <- variablenames
每個變量都有一組,我們這裏有十組。因此,對於在該數據幀中的每一個變量的組指標如下:
group <- rep(1:10, each = 10)
因此變量名稱和組
data.frame (group, variablenames)
group variablenames
1 1 MR.1.1
2 1 MR.1.2
3 1 MR.1.3
4 1 MR.1.4
5 1 MR.1.5
6 1 MR.1.6
7 1 MR.1.7
8 1 MR.1.8
9 1 MR.1.9
10 1 MR.1.10
11 2 MR.2.11
<<<<<<<<<<<<<<<<<<<<<<<<
100 10 MR.10.100
每個基團是指以下步驟對子級需單獨應用到變量組。
我有更長的功能起作用,以下是簡單的例子:
功能考慮在時間
myfun <- function (x1, x2) {
out <- NULL
out <- paste(x1, x2, sep=":")
# for other steps to be performed here
return (out)
}
# group 1
myfun (myd[,1], myd[,2]); myfun (myd[,3], myd[,4]); myfun (myd[,5], myd[,6]);
myfun (myd[,7], myd[,8]); myfun (myd[,9], myd[,10]);
# group 2
myfun (myd[,11], myd[,12]); myfun (myd[,13], myd[,14]); .......so on to group 10 ;
兩個變量這樣,我需要走變量1:10(即在第一組執行上述操作),然後是11:20(第二組)。在這種情況下,組中的變量無關緊要,每個組中的變量數量可以與在某個時間(2)所採用(考慮)的變量數量(10)整除。
但是,在下面的例子中,每次取3個變量 - 每個組(3),10/3中總變量的數量,最後剩下一個變量。函數考慮三個變量的時間函數。
myfun <- function (x1, x2, x3) {
out <- NULL
out <- paste(x1, x2, x3, sep=":")
# for other steps to be performed here
return (out)
}
# for group 1
myfun (myd[,1], myd[,2], myd[,3])
myfun (myd[,4], myd[,5], myd[,6])
myfun (myd[,7], myd[,8], myd[,9])
# As there one variable left before proceedomg to second group, the final group will
have 1 extra variable
myfun (myd[,7], myd[,8], myd[,9],myd[,10])
# for group 2
myfun (myd[,11], myd[,12], myd[,13])
# and to the end all groups and to end of the file.
欲環通過在時間,守恆變量用戶定義的n個這種過程,其中n可以是1至的每個組中的變量最大值。
編輯:只是插圖顯示的處理(只是組1和2以實例闡述例如):
而沒有明確的answere被正在添加只是一個想法 - 可以創建可變namesmat <的名稱 - 矩陣(名稱(MYD),nrow =長度( myd)/ n,byrow = TRUE),然後將函數應用於myd和這個矩陣,但我不確定關於不平衡的數據... – shNIL 2012-08-02 18:19:41