Адресные записи на самом деле являются именами строк. Мы можем получить к ним доступ rownames(.)
.
rownames(df1)
# [1] "WBGene00001816" "WBGene00001817" "WBGene00001818" "WBGene00001819"
# [5] "WBGene00001820" "WBGene00001821" "WBGene00001822"
В R также реализовано rownames<-
, то есть мы можем назначить новые имена строк, выполнив rownames(.) <- c(.)
.
Теперь в вашем случае похоже, что вы хотите сохранить только последние четыре цифры. Здесь мы можем использовать substring
, что говорит о том, какую цифру следует извлечь. В нашем случае это 11
-ая цифра до последней, поэтому мы делаем:
rownames(df1) <- substring(rownames(df1), 11)
df1
# PostFC C1Mean
# 1816 0.36250598 2.1073145
# 1817 0.51068402 0.4186838
# 1818 -0.96837330 -0.7239156
# 1819 0.02331745 -0.5902216
# 1820 -0.56927945 1.7540356
# 1821 -0.51252943 0.1343385
# 1822 0.47263180 1.4366233
Обратите внимание, что дублированные имена строк недопустимы, т. Е. Если вы получите дубликаты с использованием этого метода, это приведет к ошибке.
Использованные данные
df1 <- structure(list(PostFC = c(0.362505982864934, 0.510684020059692,
-0.968373302351162, 0.0233174467410604, -0.56927945273647, -0.512529427359891,
0.472631804850333), C1Mean = c(2.10731450148575, 0.418683823183885,
-0.723915648073638, -0.590221641040516, 1.75403562218217, 0.134338480077884,
1.43662329542089)), class = "data.frame", row.names = c("1816",
"1817", "1818", "1819", "1820", "1821", "1822"))