【发布时间】:2019-07-28 11:53:51
【问题描述】:
我想为毕达哥拉斯定理写 R 代码。
勾股定理指出,斜边(直角的对边)的平方等于其他两条边的平方和。
(sideA)^2+(SideB)^2=斜边^2
现在我写的R代码如下:
pythag<-function(sidea,sideb){
if (sidea>=0&sideb>=0)
hypoteneuse=sqrt(sidea^2+sideb^2)
else if (sidea<0|sideb<0)
hypoteneuse<-"Values Need to be Positive"
else if (!is.vector(x))
hypoteneuse<-"I need numeric values to make this work"
print(hypoteneuse)
}
pythag(4,5)
pythag("A","B")
pythag(-4,-5)
如果是 pythag(4,5) 没问题,pythag(-4,-5) 也会给出评论“值需要为正”。
但在 pythag("A","B") 的情况下,我想评论“我需要数值来完成这项工作”,但不幸的是我的代码不适用于此。
【问题讨论】:
-
x是什么?另外,如果x=c(sideA, sideB),那仍然是一个向量,而是一个字符串向量 -
is.vector()测试某事物是否为向量,其中包括字符和因子向量。数字向量不是唯一的向量。 -
另外——打印它们的输出而不是返回它们的函数在数学计算中不是很有用,因为它们不能以任何非常直接的方式作为更大的计算。
print()主要用于调试功能,不返回值。 -
主要问题是您首先计算斜边,假设所有输入都是有效的。应该是最后做的,检查必须是先验的。
标签: r pythagorean