2017-09-06 108 views
1

我想創建一個函數,該函數用位於任意(但已知)位置的兩類變量來命名任意(但已知)長度的向量(或矩陣的行)。在R中爲任意長度的矢量創建名稱?

例如,如果我的矢量是

vec <- 1:8 

,我想命名的條目1,3,5,7爲A1,A2,A3,A4和項目2,4,6,8如B1,B2,B3,B4通過提供

indexA <- c(1,3,5,7) 
indexB <- c(2,4,6,8) 

由於可變長度和可變位置(二者已知的)的I輸入矢量,我需要自動執行此操作。接下來的載體可能是1:123具有不同位置的類別A和B.

+2

用'paste0( 「A」,seq_along(指數A))'和'paste0嘗試( 「B」,seq_along(indexB))' – akrun

+0

@akrun如果你做發佈它作爲答案,我會接受它。值得讚賞的是,如何將這些名稱分配給矩陣的相應行。 – Trilobite

回答

1

我們使用seq_along得到vectorpaste字母"A""B"的順序給予的名稱屬性矢量

names(indexA) <- paste0("A", seq_along(indexA)) 
indexA  
# A1 A2 A3 A4 
# 1 3 5 7 

同樣,這可以用 'indexB'