Переименование строк и столбцов в R

никакой "#", когда Вы используете window.location.hash

6
задан Brian Tompsett - 汤莱恩 11 January 2017 в 09:05
поделиться

2 ответа

Один из способов сделать это - использовать факторы или списки строк вместо индексов. Итак:

cause1 <- c("Maltreat", "Non-malt")[cause]

> print(cause1)
 [1] "Maltreat" "Maltreat" "Maltreat" "Maltreat" "Maltreat" "Non-malt"
 [7] "Maltreat" "Non-malt" "Non-malt" "Non-malt" "Non-malt"

> table(cause1, time)
          time
cause1     1 2 3
  Maltreat 2 2 2
  Non-malt 2 3 0

И, если вас беспокоит память или скорость, R довольно хорошо справляется с внутренним представлением такого рода вещей, с сохранением только одного экземпляра всей строки, а остальное делается с помощью индексов.

Между прочим, вы будете счастливее в конечном итоге с фреймами данных:

> df <- data.frame(cause=as.factor(c("Maltreat", "Non-malt")[cause]), time=time)
> summary(df)
      cause        time      
 Maltreat:6   Min.   :1.000  
 Non-malt:5   1st Qu.:1.000  
              Median :2.000  
              Mean   :1.818  
              3rd Qu.:2.000  
              Max.   :3.000  
> table(df)
          time
cause      1 2 3
  Maltreat 2 2 2
  Non-malt 2 3 0
4
ответ дан 10 December 2019 в 00:41
поделиться

Есть два простых способа сделать это:

z <- table(cause, time)

Используйте colnames / rownames functions:

> colnames(z)
[1] "1" "2" "3"
> rownames(z)
[1] "1" "2"

Или используйте dimnames:

> dimnames(z)
$cause
[1] "1" "2"
$time
[1] "1" "2" "3"
> dimnames(z)$cause
[1] "1" "2"

В любом случае выберите свои имена в качестве вектора и назначьте их:

> dimnames(z)$cause <- c("Maltreat","Non-malt")
> z
          time
cause      1 2 3
  Maltreat 2 2 2
  Non-malt 2 3 0
5
ответ дан 10 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: