- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有巨大矩阵的变量;这个变量有一些属性,包括较小的矩阵。
我想给这个变量分配一些小的东西(比如 NA
),这样我就可以节省内存;但我想保留这些属性。
是否有一些优雅的方式,或者我必须以某种笨拙的方式完成两项任务,第二项是 mostattributes ?
PS:说明性示例
a <- matrix(1:9,3,3)
attr(a, 'ahoj') <- 1:10
a <- NA # attributes lost, I want assignment which keeps them
我唯一能想到的就是用这 3 个替换分配:
empty_a <- NA
mostattributes(empty_a) <- attributes(a)
a <- empty_a
但这是非常笨拙的方式:)
最佳答案
如果你想在不丢失所有属性等的情况下替换对象的值,那么你可以使用 [<-
(虽然这确实保留了它的尺寸):
a <- matrix(1:9,3,3)
attr(a, 'ahoj') <- 1:10
a[] <- NA
a
# [,1] [,2] [,3]
# [1,] NA NA NA
# [2,] NA NA NA
# [3,] NA NA NA
# attr(,"ahoj")
# [1] 1 2 3 4 5 6 7 8 9 10
mostattributes
- 类似操作,具有“一些”智慧:
copyattributes <- function(x, oldvalue = NULL, remattr = character(0)) {
oldattr <- attributes(oldvalue)
clsfun <- class(oldvalue)[1]
remattr <- unique(c(
remattr,
if (exists(clsfun, mode = "function")) {
names(attributes(match.fun(clsfun)()))
} else character(0)))
copyattr <- setdiff(setdiff(names(oldattr), remattr), names(attributes(x)))
attributes(x) <- c(attributes(x), oldattr[ copyattr ])
x
}
a <- matrix(1:9,3,3)
attr(a, 'ahoj') <- 1:10
b <- NA
attr(b, "quux") <- "A"
a <- copyattributes(b, a)
a
# [1] NA
# attr(,"quux")
# [1] "A"
# attr(,"ahoj")
# [1] 1 2 3 4 5 6 7 8 9 10
remattr
尝试使用
class
旧对象(
a
)以确定哪些属性始终存在(例如,
"dim"
表示矩阵,
c("names", "row.names")
表示帧),而不是复制这些属性。然后它确保它不会覆盖或删除现有属性。
关于r - 分配给变量 _AND_ 保持属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67807491/
我有一个带有巨大矩阵的变量;这个变量有一些属性,包括较小的矩阵。 我想给这个变量分配一些小的东西(比如 NA ),这样我就可以节省内存;但我想保留这些属性。 是否有一些优雅的方式,或者我必须以某种笨拙
我有一个 Windows 应用程序,它注册了一个处理对话框 WM_HELP 消息的 CALLBACK 过程,以及一个处理自定义按钮的 WM_LBUTTONUP 消息的 CALLBACK 过程。 现在,
在 JavaScript 中对包含逗号分隔数字 和 符号的字符串数组进行 sort() 的最佳方法是什么? 我的数组如下所示: var uniqueValues = ["100,000", ">250
我有一个 ExpressionEngine 站点,我需要在其中强制执行 SSL 并删除 www.从网址。我正在使用这段代码: RewriteEngine On RewriteBase / Rewrit
我为我的服务器获得了证书 - example.com 并选择不为 www.example.com 签名,因为我要重定向所有流量www.example.com 到 example.com。 现在,我有一
我想运行一个程序“A”,让它的输出进入另一个程序“B”的输入,以及进入“B”的输入的标准输入。如果程序“A”关闭,我希望“B”继续运行。 我可以轻松地将 A 输出重定向到 B 输入: ./一个 | .
我有一些代码是用 GCC 5.3.1 构建的,没有设置 _GLIBCXX_CXX11_ABI。现在,假设我想在同一段代码中同时使用旧式和新式 std::__cxx11::string。那可能吗?如果是
我正在开发一个包含聊天功能的 Flutter Web 应用程序。 我想包含一个普通的输入功能,用户可以在其中输入文本并将其发送到聊天流中。如今聊天应用程序的一个标准功能是 send在 并在 上执行换
我正在寻找一种方法来使用 Ninject 做这样的事情: // Sample from the Unity application block IMyService result = myContai
情况如下: 我们在 EF5.0 上有一个使用数据库优先方法的大型 MVC 项目: ObjectContext 构造函数: namespace xxx.Models { (...)
我有一个非常奇怪的 JNI 编译问题,完全不知道如何解决... 这是一个在我的 Java 代码中从静态上下文调用的函数: private static final Logger logger
我有一个名为 CGI::Github::Webhook 的 Perl 模块谁的测试套件works fine on Travis CI so far on the branch master .但是因为
我是一名优秀的程序员,十分优秀!