通过手动计算创建函数min()

  • 本文关键字:函数 min 创建 计算 r
  • 更新时间 :
  • 英文 :


我对编码和试图找出一项任务完全陌生,该任务告诉我们:

创建3个函数,通过手动计算来计算最低、最高和平均温度。我试着在这里找到答案,我得到了这个告诉我最大数字,但我真的不明白代码,有人能解释这个代码吗?

A1 <- as.numeric(readline(prompt = "Write the temperature for Tokyo: "))
B2 <- as.numeric(readline(prompt = "Write the temperature for Johannesburg: "))
C3 <- as.numeric(readline(prompt = "Write the temperature for Stockholm: "))
D4 <- as.numeric(readline(prompt = "Write the temperature for Oslo: "))
E5 <- as.numeric(readline(prompt = "Write the temperature for Amsterdam: "))
F6 <- as.numeric(readline(prompt = "Write the temperature for Mexico city: "))
G7 <- as.numeric(readline(prompt = "Write the temperature for Hanoi: "))
H8 <- as.numeric(readline(prompt = "Write the temperature for Canberra: "))
I9 <- as.numeric(readline(prompt = "Write the temperature for Tbilisi: "))
J10 <- as.numeric(readline(prompt = "Write the temperature for New Delhi: "))

data = data.frame(A1,B2,C3,D4,E5,F6,G7,H8,I9,J10)
datamatrix <- as.matrix(data) #Converts data into a matrix
y=-Inf
z=0
for(i in datamatrix) {

if(i>y){
y=i

if(y!=Inf){z=i}
}
else{y=Inf}
}
print(paste0("maximum number is: ", z))
A1 <- as.numeric(readline(prompt = "Write the temperature for Tokyo: "))

J10的其余部分是变量,其中值由用户定义。如果您在控制台中运行上面的行,它希望您插入一个数字。

data = data.frame(A1,B2,C3,D4,E5,F6,G7,H8,I9,J10)
datamatrix <- as.matrix(data) #Converts data into a matrix 

这将准备数据

y=-Inf
z=0
for(i in datamatrix) {

if(i>y){
y=i

if(y!=Inf){z=i}
}
else{y=Inf}
}
print(paste0("maximum number is: ", z))

这部分是一个"for循环",意味着它循环(遍历(datamatrix(A1到J10(中的每个值,并将其分配给i变量并对其进行一些计算。{}之间的for(i in datamatrix)下面的代码是每次分配i时运行的一块代码。

该代码块检查i是否大于y:if(i > y),在本例中为负无穷大。每当i大于y时,它都会将i分配给yz变量,但如果在任何迭代中y大于i,则z变量将不会再次更改,因为y将分配给Inf,而i不能大于该值。

这意味着你的函数并不总是找到最大值。您可以通过将值指定给A1到J10来测试这一点。只有在非常特殊的情况下,你才能得到最大数量。

z=-Inf
for(i in datamatrix) {   
if(z < i)
z <- i
}
print(paste0("maximum number is: ", z))

for-loop将找到最大数量。我并不认为它是最优的,但它应该更容易理解。

它将循环遍历这些值,并检查z是否小于i。如果是,则i值被分配给z。如果循环中出现更大的数字,它将重新分配i,但前提是它更大,这意味着您将以最高值结束upp。

希望这能有所帮助。

最新更新