r - R中是否有一种方法可以使用用户输入更新数据框的特定单元格?
问题描述
免责声明:保存一两个奇怪的脚本,我对 R/coding 还是很陌生,这是我在这里的第一篇文章,所以请保持温和。对于事情可能多么模糊,我深表歉意,我现在根本没有编码词汇来最好地描述我正在尝试做的事情。
反正:
我有一个数据框,其中列b
描述了x
留在罐子中的 cookie 的数量,列a
包含所有罐子的名称y
,从中获取 cookie。
由于从许多不同的 jar 中获取的 cookie 的数量和频率很高,因此该数据框需要例行更新。
到目前为止,我有一个脚本,该脚本将从 jar 和 cookie 的主列表中提取并编写一个 csv,其中仅包含订单所需的 jar 以及每个 jar 中剩余多少 cookie。
我想为订单中的每个 Jar 添加一些readline(prompt)
询问用户的信息,例如“从 Jar 获取的 cookie 数量z
:”,然后使用提供的用户输入更新 jar 和 cookie 主列表中的确切单元格。
我知道如何做我在这里提到的所有事情,除了如何告诉 R 包含z
在用户提示中。
因此,换句话说,如果我有一个订单表格,其中有人从 jar 5、11 和 31 请求 cookie,我如何告诉 R 提示:
'从 JAR 5 获取的 cookie 数量:'
等待输入
'从 JAR 11 获取的 cookie 数量:'
等待输入
'从 JAR 31 获取的 cookie 数量:'
等待输入
解决方案
这是一个如何使用for
循环执行此操作的示例。
1)我们可以定义一个虚拟数据框:
df <- data.frame(Jars = LETTERS[1:5],
Cookie = sample(1:50,5))
所以你的数据框看起来像:
> df
Jars Cookie
1 A 9
2 B 17
3 C 23
4 D 34
5 E 19
2)然后,用于迭代的代码Jars
并要求每个输入并从Cookie
列中减去它(您甚至可以打印每个罐子中当前的 cookie 数量以避免产生负面结果;)):
for(i in 1:nrow(df))
{
x <- as.numeric(readline(paste0("How many in Jar ",df$Jars[i]," (current number:",df$Cookie[i],") : ")))
df[i,"Cookie"] <- df[i,"Cookie"] - x
}
3)现在在行动:
> for(i in 1:nrow(df))
+ {
+ x <- as.numeric(readline(paste0("How many in Jar ",df$Jars[i]," (current number:",df$Cookie[i],") : ")))
+ df[i,"Cookie"] <- df[i,"Cookie"] - x
+ }
How many in Jar A (current number:9) : 0
How many in Jar B (current number:17) : 2
How many in Jar C (current number:23) : 1
How many in Jar D (current number:34) : 3
How many in Jar E (current number:19) : 0
4)现在你的数据框看起来像:
> df
Jars Cookie
1 A 9
2 B 15
3 C 22
4 D 31
5 E 19
它是否与您正在寻找的内容相对应?
推荐阅读
- rust - 为什么我的 TryFrom 实现没有
> 封面 TryFrom >? - python - 有谁知道为什么我的 Python 脚本在使用 openpyxl 时什么都不做?
- java - 在 JavaFX 中更改复选框树项的 CSS 样式
- r - 如何使用循环命令计算R中矩阵的两对不同行的每一行和每一列中某些固定值的频率
- freeradius - 无法通过添加的用户向 freeradius 服务器进行身份验证
- python - datetime.date 与 for 循环中 if 语句中的其他 datetime.date 不匹配
- autodesk-forge - 如何使用 DWG 作为文档在 Autodesk Forge Viewer 中启用文本选择
- machine-learning - 各种分类器的比较研究
- html - 无法使 html 文件在移动设备上响应
- flutter - 如何在一页中制作多个音频