我在尝试创建一个函数时遇到了麻烦。我想把数字转换成一周中指定的日子。例如:1='星期一',2='星期二',3='星期三',4='星期四',5='星期五',6='星期六',0='星期日'
下面是我编写函数的尝试,但我得到了一个错误,我还认为一定有一种方法可以循环它。我只是不知道怎么做。
#experiment
pow <- function(x) {
if (x == 1)
{
print("Monday")
}
else if (x == 2)
{
print("Tuesday")
}
else if (x == 3)
{
print("Wednesday")
}
else if (x == 4)
{
print("Thursday")
}
else if (x == 5)
{
print("Friday")
}
else if (x == 6)
{
print("Saturday")
}
else if (x == 0)
{
print("Sunday")
}
else if (is.na(x) ==TRUE)
{print("Sorry, please enter two numbers.")
}
}
可以创建向量并将其子集:
pow <- function(x) {
days <- c('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')
days[x + 1]
}
pow(2)
#[1] "Tuesday"
pow(0)
#[1] "Sunday"
#You can also pass more than 1 number to the function
pow(c(1, 5, 6, NA, 3))
#[1] "Monday" "Friday" "Saturday" NA "Wednesday"
我将在这里使用dplyr
包中的case\u,而只是让函数将输入映射到某个字符串输出。
library(dplyr)
pow <- function(x) {
output = case_when(
x == 0 ~ "Sunday",
x == 1 ~ "Monday",
x == 2 ~ "Tuesday",
x == 3 ~ "Wednesday",
x == 4 ~ "Thursday",
x == 5 ~ "Friday",
x == 6 ~ "Saturday",
TRUE ~ "Sorry, please enter two numbers."
)
return(output)
}
我正在尝试从几个mutate(dplyr包)函数创建一个循环函数。下面的每一行代码都运行得很好,但是我正在寻找更优雅的代码(如果可能的话,在一行代码中),因为我需要再重复这五行代码10次(对于额外的10个数据帧)。 是我的Data.Frame,有5列10,000行。
问题内容: 目前,我正在做以下事情,这变得很乏味: 我猜还有其他一些可以接受的方式来处理这些东西吗? 我正在寻找的功能是按需执行一次。例如,按下某个按钮。这是一个交互式应用程序,具有许多用户控制的开关。每个开关都有一个垃圾变量,只是为了跟踪是否已运行,似乎效率很低。 问题答案: 我会在函数上使用装饰器来处理跟踪运行次数的情况。 现在将只运行一次。对其的其他调用将返回。如果希望它返回其他内容,只需在
假设我有一系列python函数: 我想这样称呼他们: 大概是这样的: 如果我有很多函数要调用,这是很有帮助的,但这将有for循环。在没有for循环的情况下,我是否有其他方法来执行此操作?
我想使用以下循环创建一个新列。表中只有“open”和“start”列。我想创建一个新列“startopen”,如果“start”等于1,那么“startopen”等于“open”。否则,“startopen”等于此新创建列上方行中的任何“startopen”。目前,我能够通过以下方式实现这一点: 这有效,但对于大型数据集来说非常慢。是否有任何内置函数可以更快地完成此操作?
我试图在Java中创建一个简单的动画,显示一个蓝色的球在一个500 x 500的窗口中水平移动。球应该以1px/30ms的速度移动。问题是,窗口只有在时循环退出时才被绘制,而不是在我想要的时循环的每次迭代中。这导致蓝色的球被绘制在它的最终位置。你能告诉我我在这里做错了什么吗?我也尝试过在EDT上使用绘画组件()方法执行这段代码,得到了同样的结果。此外,正如其他帖子所建议的,当使用EDT和绘画组件(
用户应该输入一个4位数的数字,我需要反向它我导入扫描并收到了来自用户的答案,但是如何反向呢?例如,如果用户键入9876,它将打印6789?我应该用%吗?