Как создать псевдоним имени столбца в цикле for? - PullRequest
0 голосов
/ 17 января 2019

Я делаю функцию, и я хотел бы вызвать столбец определенным образом.

Инициализировать данные

a <- c(1,2,3,4,5)
b <- c(6,7,8,9,10)
c <- c(1,2,3,4,5)
d <- c(6,7,8,9,10)
df <- as.data.frame(cbind(a,b,c,d))

Вызовстолбец для табличной функции

Func <- function(df){
  X <- df
  Y <- names(M)

  for(i in 1:2){ 
    table(X$___,X$___)
}}

Проблема в том, что я не знаю, как вызывать столбцы.

Я бы хотел, чтобы он был эквивалентен table(X$a, X$b), поскольку он повторяется в цикле.

Я пробовал это, и это не сработало

  for(i in 1:2){ 
        Q <- Y[i]
        W <- Y[j]
        table(X$Q,X$W)
}}

Для используемой функции необходимо, чтобы я создал таблицу с формой table(X$a, X$b), и я не знаю, как этого добиться в цикле for?

Ответы [ 3 ]

0 голосов
/ 17 января 2019

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

Замените вашу for петлю и используйте

table(df[1:2])

, который даст вам ожидаемый результат.

0 голосов
/ 17 января 2019

Вы также можете просмотреть col, используя индекс столбца. В следующем коде вы можете перебрать столбец набора данных iris:

for(i in 1:length(colnames(iris))){
  print(iris[,i]) # to get single column
  print(iris[,c(i,i+1)]) # to get multiple column data
}
0 голосов
/ 17 января 2019

Вам нужно использовать два [[, чтобы получить содержимое столбца:

 df <- datasets::mtcars
 for (i in 1:2) df[[i]]

Это также будет работать для имен столбцов

for (i in names(df)) df[[i]]

Не уверен, что вы пытаетесь достичь, хотя. Вы также можете просто сделать:

lapply(df[1:2], table)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...