Пишу следующую функцию:
for (i in 1:272){
gh[[i]]<- c(df[i, 1],df[i, 2])}
Error: object 'gh' not found
Почему это? Почему я получаю эту ошибку? И как это исправить?
со следующей структурой данных:
data.frame': 272 obs. of 2 variables:
$ V1: Factor w/ 17 levels "exp_var_nocorr_1",..: 1 1 1 1 1 1 1 1 1 1 ...
$ V2: Factor w/ 17 levels "exp_var_nocorr_1",..: 2 3 4 5 6 7 8 9 10 11 ...
или это, чтобы было нагляднее, вот у меня первые 33 строки:
V1 V2
1 exp_var_nocorr_1 exp_var_nocorr_10
2 exp_var_nocorr_1 exp_var_nocorr_11
3 exp_var_nocorr_1 exp_var_nocorr_12
4 exp_var_nocorr_1 exp_var_nocorr_13
5 exp_var_nocorr_1 exp_var_nocorr_14
6 exp_var_nocorr_1 exp_var_nocorr_15
7 exp_var_nocorr_1 exp_var_nocorr_16
8 exp_var_nocorr_1 exp_var_nocorr_17
9 exp_var_nocorr_1 exp_var_nocorr_2
10 exp_var_nocorr_1 exp_var_nocorr_3
11 exp_var_nocorr_1 exp_var_nocorr_4
12 exp_var_nocorr_1 exp_var_nocorr_5
13 exp_var_nocorr_1 exp_var_nocorr_6
14 exp_var_nocorr_1 exp_var_nocorr_7
15 exp_var_nocorr_1 exp_var_nocorr_8
16 exp_var_nocorr_1 exp_var_nocorr_9
17 exp_var_nocorr_10 exp_var_nocorr_1
18 exp_var_nocorr_10 exp_var_nocorr_11
19 exp_var_nocorr_10 exp_var_nocorr_12
20 exp_var_nocorr_10 exp_var_nocorr_13
21 exp_var_nocorr_10 exp_var_nocorr_14
22 exp_var_nocorr_10 exp_var_nocorr_15
23 exp_var_nocorr_10 exp_var_nocorr_16
24 exp_var_nocorr_10 exp_var_nocorr_17
25 exp_var_nocorr_10 exp_var_nocorr_2
26 exp_var_nocorr_10 exp_var_nocorr_3
27 exp_var_nocorr_10 exp_var_nocorr_4
28 exp_var_nocorr_10 exp_var_nocorr_5
29 exp_var_nocorr_10 exp_var_nocorr_6
30 exp_var_nocorr_10 exp_var_nocorr_7
31 exp_var_nocorr_10 exp_var_nocorr_8
32 exp_var_nocorr_10 exp_var_nocorr_9
33 exp_var_nocorr_11 exp_var_nocorr_1
dput
результат:
structure(list(V1 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L), .Label = c("exp_var_nocorr_1",
"exp_var_nocorr_10", "exp_var_nocorr_11"), class = "factor"),
V2 = structure(c(2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L,
12L, 13L, 14L, 15L, 16L, 17L, 1L, 3L, 4L, 5L, 6L, 7L, 8L,
9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 1L), .Label = c("exp_var_nocorr_1",
"exp_var_nocorr_10", "exp_var_nocorr_11", "exp_var_nocorr_12",
"exp_var_nocorr_13", "exp_var_nocorr_14", "exp_var_nocorr_15",
"exp_var_nocorr_16", "exp_var_nocorr_17", "exp_var_nocorr_2",
"exp_var_nocorr_3", "exp_var_nocorr_4", "exp_var_nocorr_5",
"exp_var_nocorr_6", "exp_var_nocorr_7", "exp_var_nocorr_8",
"exp_var_nocorr_9"), class = "factor")), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24",
"25", "26", "27", "28", "29", "30", "31", "32", "33"))
В дополнение к моему последнему комментарию, возможно, вам просто нужно что-то вроде gh <- as.data.frame(t(df))
. Нет причин писать цикл для транспонирования.
Проблема с кодом, заключающимся в том, что вы не разместили список gh
перед доступом к его элементам. Сначала перед элементами списка доступа вам необходимо его инициализировать, см. Приведенный ниже код:
set.seed(123)
smpl <- structure(list(V1 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L), .Label = c("exp_var_nocorr_1",
"exp_var_nocorr_10", "exp_var_nocorr_11"), class = "factor"),
V2 = structure(c(2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L,
12L, 13L, 14L, 15L, 16L, 17L, 1L, 3L, 4L, 5L, 6L, 7L, 8L,
9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 1L), .Label = c("exp_var_nocorr_1",
"exp_var_nocorr_10", "exp_var_nocorr_11", "exp_var_nocorr_12",
"exp_var_nocorr_13", "exp_var_nocorr_14", "exp_var_nocorr_15",
"exp_var_nocorr_16", "exp_var_nocorr_17", "exp_var_nocorr_2",
"exp_var_nocorr_3", "exp_var_nocorr_4", "exp_var_nocorr_5",
"exp_var_nocorr_6", "exp_var_nocorr_7", "exp_var_nocorr_8",
"exp_var_nocorr_9"), class = "factor")), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24",
"25", "26", "27", "28", "29", "30", "31", "32", "33"))
# data.simulation
df <- smpl[sample(33, 272, replace = TRUE), ]
# list memory allocation
gh <- lapply(1:272, function(x)c("", ""))
# fill-in gh
for (i in 1:272){
gh[[i]] <-c(df[i, 1],df[i, 2])}
gh[1:5]
Выход:
[[1]]
[1] "exp_var_nocorr_1" "exp_var_nocorr_3"
[[2]]
[1] "exp_var_nocorr_10" "exp_var_nocorr_4"
[[3]]
[1] "exp_var_nocorr_1" "exp_var_nocorr_7"
[[4]]
[1] "exp_var_nocorr_10" "exp_var_nocorr_7"
[[5]]
[1] "exp_var_nocorr_10" "exp_var_nocorr_9"
Ничто в том, что вы написали, не объясняет, почему вы думаете, что
gh
существует. Что такое являетсяgh
и как и где он определяется? Пожалуйста, дайте минимальный воспроизводимый пример. Прочтение следующего должно помочь вам понять, что это означает в R: Как сделать отличный воспроизводимый пример R?. Также - что именно вы пытаетесь сделать? Вряд ли потребуется шлейф.