поднабор кадра данных в соответствии с заданным шаблоном c - PullRequest
0 голосов
/ 13 февраля 2020
matrix <- matrix(grep("a",rownames(fru))

for (l in matrix){
  s <- fru[l,]  
  sa <- rbind(s)
  View(sa)
}


fru - фрейм данных. matrix - это список чисел с указанными c строками в фруктах (строки, которые содержат специальный шаблон в своих именах строк).


fru <- data.frame(variable1=c("8","67","89"),variable2=c("89","89","0"),variable3=c("89","890","89")
row.names(fru,c("c1","a2","c3","a4"))

Я хочу кадр данных со всеми строками, в именах которых есть «a». Я хочу, чтобы все столбцы были в этом новом фрейме данных.

l oop дает мне кучу фреймов данных, которые все одинаковы: это последняя указанная строка c означает строку a4 со всеми четырьмя «переменными» столбцами).

Как получить подмножество указанных c строк fru? Специфика строк - это шаблон, являющийся частью их имен строк (поэтому я не могу использовать функцию subset()).

Что не так с этим l oop?

Спасибо заранее;)

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Конечно, вы можете использовать subset, то есть

res <- subset(fru,grepl("a",rownames(fru)))
0 голосов
/ 13 февраля 2020

Вы можете использовать grep для поиска имен строк с помощью a и поднабора их с помощью [].

fru[grep("a",rownames(fru)),]
#   v1 v2 v3
#a2  2  2  3
#a4  4  2  3

Данные:

fru <- data.frame(v1=1:4,v2=2,v3=3, row.names=c("c1","a2","c3","a4"))
fru
#   v1 v2 v3
#c1  1  2  3
#a2  2  2  3
#c3  3  2  3
#a4  4  2  3
...