Изменение dimnames матриц и кадров данных в R

Скажем, я создал следующую матрицу:

> x <- matrix(1:20000,nrow=100)
> x[1:10,1:10]
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    1  101  201  301  401  501  601  701  801   901
 [2,]    2  102  202  302  402  502  602  702  802   902
 [3,]    3  103  203  303  403  503  603  703  803   903
 [4,]    4  104  204  304  404  504  604  704  804   904
 [5,]    5  105  205  305  405  505  605  705  805   905
 [6,]    6  106  206  306  406  506  606  706  806   906
 [7,]    7  107  207  307  407  507  607  707  807   907
 [8,]    8  108  208  308  408  508  608  708  808   908
 [9,]    9  109  209  309  409  509  609  709  809   909
[10,]   10  110  210  310  410  510  610  710  810   910

Каковы методы в R для изменения строки и имен столбцов? Например, мне нравится, когда названия строки SS1, SS2, ..., SS100 и имена столбцов, чтобы быть M1, M2, ..., M200. Я обычно работаю с данными с 1000-ми строк и столбцов, и мне нужен хороший метод сделать это. Некоторые люди используют что-то как attributes(x)$dimnames <- list(...) и некоторое использование rownames <- paste(...). Каковы все возможные методы?

Мой второй вопрос, я могу использовать те же методы после того, как я преобразовываю матрицу в кадр данных?

5
задан Mehper C. Palavuzlar 5 November 2010 в 09:03
поделиться

2 ответа

если (MyStringVariable = = «LKOH») Debugger.Break ();

потребуется пространство имен System.Diagnostics

http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx

-121--2230454-

Да. В противном случае невозможно будет увидеть полную историю страниц, что ожидается от реализации Wiki.

-121--3126639-

Из комментария к ответу:

row.names(x) <- paste("SS", 1:nrow(x), sep="")
colnames(x) <-  paste("M" , 1:ncol(x), sep="")

Как писал @ doug, он работает для матриц и кадров данных.

11
ответ дан 18 December 2019 в 09:07
поделиться

Да, те же методы будут работать (matrix/data.frame) - см. ниже:

A = matrix(1:12, nrow=4)
colnames(A) = c("col1", "col2", "col3")
row.names(A) = c("row1", "row2", "row3", "row4")

dfA = as.data.frame(A)
row.names(dfA) = c("r1", "r2", "r3", "r4")
colnames(A) = c("C1", "C2", "C3")

А чтобы сэкономить время, можно сделать так:

x = rep("col", dim(M)[2])
y = 1:dim(M)[2]
colnames(M) = paste(x, y, sep="")
7
ответ дан 18 December 2019 в 09:07
поделиться
Другие вопросы по тегам:

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