r - 从 R 中的数据矩阵中获取向量范数
问题描述
我正在尝试使用 R 来实现一些计算,以计算具有给定坐标的点的范数,然后取最大值,然后从中取出平方。
我尝试了以下方法:
a <- c(-0.5,1)
b <- c(-1,-1.5)
c <- c(-1.5,1.5)
d <- c(1.5,-0.5)
e <- c(0.5,-0.5)
df <- data.frame(a,b,c,d,e)
以更详细的方式,这就是我想要执行的操作:
我尝试使用norm
and 使用,Frobenius
但我想将所有内容放入一个函数中以供以后使用。因为当我为这些任务手动创建向量时,计算每个点变得太乏味了。寻找一种有效/更简单的方法来执行此操作。
解决方案
我们循环across
列,得到元素的平方,sum
它,用平方根返回,得到max
并平方它
library(dplyr)
df %>%
summarise(across(everything(), ~ sqrt(sum(.^2)))) %>%
max %>%
.^2
#[1] 4.5
中base R
,我们可以使用
max(sqrt(colSums(df^2)))^2
#[1] 4.5
如果我们想要print
使用所有数字,请指定digits
inprint
print(max(sqrt(colSums(df^2)))^2, digits = 16)
#[1] 4.499999999999999
推荐阅读
- griddb - 为什么我的 TQL 查询使用 LIKE 没有返回结果?
- c - 如果找到大写字母,函数不会获取字符串的其余部分
- blazor - 如何在 WebAssembly 中执行 Blazor OpenID Connect 身份验证工作流
- sml - 带有 step 参数的 sml 中的 range 函数
- python - Python:如何比较卡片数组中的元素
- docker - 如何在两台服务器上同步 Docker 容器
- javascript - Vue NodeJs API 随机 ERR_TIMED_OUT
- frameworks - 将 EF 重新映射到应用程序
- javascript - 如何在柏树中找到与dayjs的时差?
- jinja2 - 在 dbt model jinja 模板的赋值块内调用 var 宏