Мне нужно вставить элемент за элементом содержимое двух фреймов данных для ввода в другую программу.У меня есть фрейм данных средних и фрейм данных стандартных ошибок среднего.
Я пытался использовать функцию R paste (), но, похоже, она не справляется с фреймами данных.При использовании вектора кажется, что все элементы первого вектора объединяются в строку, а все элементы второго - в отдельную строку.Вместо этого мне нужно, чтобы каждый ответный элемент в двух фреймах данных был соединен вместе.
Какие-либо предложения о том, как подойти к этому?Я включил фиктивные входные данные (datMean и datSE) и желаемый результат (datNew).Мои реальные фреймы данных имеют размер около 10 строк на 150 столбцов.
# means and SEM
datMean <- data.frame(a=rnorm(10, 3), b=rnorm(10, 3), d=rnorm(10, 3))
datSE <- data.frame(a=rnorm(10, 3)/100, b=rnorm(10, 3)/100, d=rnorm(10, 3)/100)
# what the output should look like
# i've chosen some arbitrary values here, and show only the first row.
datNew <- data.frame(a="2.889-2.926", b="1.342-1.389", d="2.569-2.576")
Идея состоит в том, чтобы каждый элемент в datNew представлял собой диапазон, состоящий из «mean - se» и «mean + se», разделенныхчерез тире '-'.Функция paste () может сделать это для одного элемента, как сделать это для всего фрейма данных?
paste(datMean[1,1] - datSE[1,1], datMean[1,1] + datSE[1,1], sep="-")
РЕДАКТИРОВАТЬ 1: Глядя на некоторые ответы, я понимаю, что упустил важный бит информации ввопрос.Каждая строка исходных фреймов данных названа, и мне нужно воссоздать окончательный фрейм данных с этими именами.Например:
rownames(datMean) <- LETTERS[1:10]
rownames(datSE) <- LETTERS[1:10]
Мне нужен datNew, чтобы в итоге снова получить эти 10 имен строк.Это может быть проблематично с некоторыми решениями, использующими melt ().