免责声明:保存一两个奇怪的脚本,我对R / coding还是很陌生,这是我在这里的第一篇文章,所以请保持谦虚。我对事情可能会变得很模糊表示歉意,我只是暂时没有编码词汇来最好地描述我正在尝试做的事情。
无论如何:
我有一个数据框,其中b
列描述了罐中剩余的Cookie数量x
,列a
包含了所有罐子的名称y
,从中获取Cookie。
由于从许多不同罐中取出的Cookie的数量和频率很高,因此该数据框需要例行更新。
到目前为止,我有一个脚本,它将从罐子和cookie的主列表中提取并编写一个csv,该csv仅包含订单所需的罐子以及每个罐子中剩余多少cookie。
我想为订单中的每个Jar添加一些readline(prompt)
,向用户询问类似“从Jar z
中提取的Cookie数量:”,然后在主服务器中更新该确切的单元格提供的用户输入的jar和cookie列表。
除了如何告诉R在用户提示中包含z
之外,我知道如何做我在这里提到的所有事情。
因此,换句话说,如果我有一个订购单,有人从罐5、11和31中请求饼干,我如何告诉R提示:
'从JAR 5中获取的Cookie数量:'
等待输入
'从JAR 11提取的Cookie数量:'
等待输入
'从JAR 31提取的Cookie数量:'
等待输入
答案 0 :(得分:0)
这是一个使用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
列中减去它的代码(您甚至可以按顺序打印每个jar中的当前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
它与您要查找的内容相对应吗?