Предположим, у меня есть матрица 5 на 5 с именами фруктов (5 фруктов класса). Я хочу добавить 5 новых столбцов в эту существующую матрицу с общим количеством отдельных плодов в каждой из строк и, наконец, одну дополнительную строку, чтобы показать суммирование каждого такого же плода. матрица данных, как это,Как добавить общее число той же строки с новым столбцом в матрицу данных с помощью R
[,1] [,2] [,3] [,4] [,5]
[1,]mango banana mango
[2,]apple kiwi banana
[3,] mango
[4,]mango apple
[5,] orange
Я хочу, чтобы получить выходной сигнал (кадр данных), как это,
[,1] [,2] [,3] [,4] [,5] [apple] [banana] [kiwi] [mango] [orange]
[1,]mango banana mango 0 1 0 2 0
[2,]apple kiwi banana 1 1 1 0 0
[3,] mango 0 0 0 1 0
[4,]mango apple 1 0 0 1 0
[5,] orange 0 0 0 0 1
[6,] 2 2 1 4 1
Я попытался grep
, он разрушает всю матрицу в вектор-столбец. Я действительно не знаю, как это сделать для всей матрицы данных с R. Вот код,
fruits <- matrix(c("mango", "", "banana", "", "mango", "apple", "kiwi", "", "banana", "","", "", "mango", "", "", "mango", "", "apple", "", "", "", "", "", "orange", ""), nrow = 5, ncol = 5, byrow = TRUE)
fruits$apple <- length(grep("apple", fruits[1:nrow(fruits), 1:ncol(fruits)]))
fruits$banana <- length(grep("banana", fruits[1:nrow(fruits), 1:ncol(fruits)]))
fruits$kiwi <- length(grep("kiwi", fruits[1:nrow(fruits), 1:ncol(fruits)]))
fruits$mango <- length(grep("mango", fruits[1:nrow(fruits), 1:ncol(fruits)]))
fruits$orange <- length(grep("orange", fruits[1:nrow(fruits), 1:ncol(fruits)]))
Пожалуйста, помогите.
Вы не можете смешивать разные типы данных в матрице. Возможно, вы должны использовать рамку данных. – Stibu
Спасибо за исправление –