【发布时间】:2018-11-02 10:29:35
【问题描述】:
我有一个如下所示的数据框:
df <- data.frame(text = c("text1", "text2", "text3"),
a = c(1,2,3),
b = c(2,4,6),
c = c(3,6,9))
df
对于每一行,我想使用以下方法计算 a、b 和 c 列中的值之间的距离平均值:
mean(dist())
我想将结果存储在名为“score”的列中。结果应如下所示:
df <- data.frame(text = c("text1", "text2", "text3"),
a = c(1,2,3),
b = c(2,4,6),
c = c(3,6,9),
score = c(mean(dist(c(1,2,3))),
mean(dist(c(2,4,6))),
mean(dist(c(3,6,9)))))
df
搜索 Stackoverflow 我只能找到将一行转换为向量的示例。我也尝试了很多自己的方法,但每次都被卡住了。这可能是由于缺乏基本的 R 知识。请帮我解决这个问题。非常感谢您的帮助!
【问题讨论】:
-
df$score
-
df$score = sapply(df[,2:4], function(x) mean(dist(x)))
-
@JuanAntonioRoldánDíaz 回答有效,谢谢!我将其作为单独的答案发布以解决我的问题。不过2天内不能接受..
标签: r dataframe vector euclidean-distance