【发布时间】:2016-09-19 01:07:21
【问题描述】:
下面,我将尽我所能描述我正在尝试做的事情,然后包括我的最佳尝试 MWE(包括 2 个 csv 文件)。
问题:我有两个 DF。一,称它为mweLookUps 有列pLU、vMax 并说10 行。另一个,称它为mweData 有列p、v 和vPrime,,比如100 行。
我想更改mweData 每一行中的值,这样如果v 的值高于mweLookUps 中的vMax,其中pLU 与p 中的值相同mweData 对于给定的行,它被替换为 vMax. 的值
解决方案 MWE
mweData <- data.frame(p = c(rep(c(34:36), 5), rep(50:53, 5)), v = runif(35, 1000, 20000))
mweData$vPrime <- mweData$v
mweLookUps <- data.frame(p = c(34:36, 50:53), vMax = runif(7, 1600, 12000))
foo <- merge(mweData, mweLookUps, by = 'p')
foo$vPrime <- ifelse(foo$v > foo$vMax, foo$vMax, foo$v)
我的尝试
mweData <- data.frame(p = c(rep(c(34:36), 5), rep(50:53, 5)), v = runif(35, 1000, 20000))
mweData$vPrime <- mweData$v
mweLookUps <- data.frame(p = c(34:36, 50:53), vMax = runif(7, 1600, 12000))
logic <- mweLookUps$p == mweData$p
tmp <- mweLookUps[logic, "vMax"]
mweData[mweData$vPrime > tmp, "vPrime"] <- tmp
[<-.data.frame(*tmp*, mweData$vPrime > tmp, "vPrime", value = c(3323.34631364793, : 数据框的下标赋值中不允许有缺失值
【问题讨论】:
-
感谢您的反馈。我试图通过用我用来生成它们的命令替换 csv 文件来进一步提高运行该东西的便利性。我还尝试更新代码中的命名约定以匹配我在描述中的内容。