根据与向量的比较并在 R [关闭] 中获取最接近的数字来创建列
Posted
技术标签:
【中文标题】根据与向量的比较并在 R [关闭] 中获取最接近的数字来创建列【英文标题】:Create a column based on comparing with a vector and the get the closest number in R [closed] 【发布时间】:2020-11-27 09:59:58 【问题描述】:我在 R Dataframe 中有下表:
我想比较 col2 和一个向量
并基于最接近向量中元素的值,我想创建 Col3,如下所示:
如何在 R 编程中做到这一点?
【问题讨论】:
请不要将您的数据添加为图像。使用dput
共享数据,阅读有关how to ask a good question 的信息以及如何提供reproducible example。
【参考方案1】:
您可以按如下方式完成此操作:
# create a minimal example data.frame and
# vector of values to match
df <- data.frame(x = seq(0.1, 1, 0.1))
set.seed(1)
v <- df$x + rnorm(10, mean = 0, sd = 0.1)
# create a vector z that stores values from v that
# are closest to values in the ith element of df$x
z <- c()
for(i in 1:nrow(df))
z[i] = v[which.min(abs(df$x[i] - v))]
# assign the new object z to the data.frame
df$z <- z
df
返回:
x z
1 0.1 0.03735462
2 0.2 0.21643714
3 0.3 0.21836433
4 0.4 0.51795316
5 0.5 0.51795316
6 0.6 0.55952808
7 0.7 0.74874291
8 0.8 0.74874291
9 0.9 0.87383247
10 1.0 0.96946116
【讨论】:
非常感谢 Rich。那行得通。这太棒了。以上是关于根据与向量的比较并在 R [关闭] 中获取最接近的数字来创建列的主要内容,如果未能解决你的问题,请参考以下文章