Colnames l oop в R, комбинируя символы с переменными - PullRequest
0 голосов
/ 05 августа 2020

Я новичок в R (и довольно новичок в программировании в целом) и изо всех сил пытаюсь написать al oop для переименования столбцов.

Моя цель - переименовать столбцы (f1w1, f1w2, f1w3 , f2w1 ...)

Вот что у меня есть:

f <- 1
w <- 1
x <- 1

while(x<ncol(wdbc)){
  while (w < 4) {
  x <- (f-1)*3+w
  print (x)
  w <- w + 1
  colnames(wdbc)[x] <- ("f" f " w" w)  
  }

  w <- 1
  f <- f + 1
  }

f и w - переменные для имен столбцов, x - это столбец, который я хочу переименовать. R не нравится, как я пытался объединить переменные с текстом в имени. Я поигрался с "pasteO ()" и "cat ()", но у меня ничего не получается.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Вы также можете использовать функцию sapply для получения необходимых имен столбцов.

f <- 1:4
w <- 1:3
new_col <- sapply(f, function(x) paste0("f",x,"w",w))
new_col 

#      [,1]   [,2]   [,3]   [,4]  
#[1,] "f1w1" "f2w1" "f3w1" "f4w1"
#[2,] "f1w2" "f2w2" "f3w2" "f4w2"
#[3,] "f1w3" "f2w3" "f3w3" "f4w3"
0 голосов
/ 05 августа 2020

Вы можете сделать это без al oop. Например, с outer:

f <- 1:4
w <- 1:3
nm <- c(t(outer(paste0('f', f), paste0('w', w), paste0)))
nm
#[1] "f1w1" "f1w2" "f1w3" "f2w1" "f2w2" "f2w3" "f3w1" "f3w2" "f3w3" "f4w1" "f4w2" "f4w3"

Затем вы можете напрямую назначить эти имена как имена столбцов.

colnames(wdbc) <- nm
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...