温馨提示:本文翻译自stackoverflow.com,查看原文请点击:r - Calculating the mean of a vector that is present in a data frame cell

r - 计算数据帧单元中存在的向量的平均值

发布于 2020-03-31 23:27:32

我在数据框中有一个列(名为A),其中包含自然数以及自然数的向量。对于其中存在自然数向量的单元格,我想计算该向量的均值。然后将最终结果存储在名为B的新列中。

目前,我尝试执行以下操作:

Val <- unlist(lapply(str_split(data$A, ","),
                     function(x) mean(as.numeric(x), na.rm=TRUE)))
Val[length(Val)] <- mean(Val[-length(Val)], na.rm=TRUE)
data$B <- Val

但是,这似乎无法正常工作。上面的函数没有提供向量的均值,当向量中只有2个元素时,它将返回NaN。下面是一个看起来像的例子

在此处输入图片说明

查看更多

提问者
Jeroen
被浏览
31
Ronak Shah 2020-01-31 19:45

如果您将列A用作文本,则另一种方法是使用gsub从列中删除多余的字符,以逗号分隔,然后使用mean使用@ zx8754的数据

sapply(strsplit(gsub('[c()]', '', df1$A), ","), function(x) mean(as.numeric(x)))
#[1] 1.000 2.000 3.000 2.000 3.000 2.333 3.000 3.000 2.500

发布
问题

分享
好友

手机
浏览

扫码手机浏览