我读过Vector不是seqs,但列表是.我不确定使用一个在另一个上的理由是什么.似乎矢量被最多使用,但是有没有理由呢?
我有一个数据框,如:
a1 = c(1, 2, 3, 4, 5)
a2 = c(6, 7, 8, 9, 10)
a3 = c(11, 12, 13, 14, 15)
aframe = data.frame(a1, a2, a3)
Run Code Online (Sandbox Code Playgroud)
我尝试以下将其中一列转换为向量,但它不起作用:
avector <- as.vector(aframe['a2'])
class(avector)
[1] "data.frame"
Run Code Online (Sandbox Code Playgroud)
这是我能提出的唯一解决方案,但我认为必须有更好的方法来做到这一点:
class(aframe['a2'])
[1] "data.frame"
avector = c()
for(atmp in aframe['a2']) { avector <- atmp }
class(avector)
[1] "numeric"
Run Code Online (Sandbox Code Playgroud)
注意:我的上述词汇可能已关闭,如果是,请纠正我.我还在学习R的世界.另外,对这里发生的事情的任何解释都是值得赞赏的(即与Python或其他语言相关的内容会有所帮助!)
这个问题真的很明显.我隐约知道数学中的向量,但我并没有真正看到C++向量的链接.
我遇到了试图在R中使用大对象的问题.例如:
> memory.limit(4000)
> a = matrix(NA, 1500000, 60)
> a = matrix(NA, 2500000, 60)
> a = matrix(NA, 3500000, 60)
Error: cannot allocate vector of size 801.1 Mb
> a = matrix(NA, 2500000, 60)
Error: cannot allocate vector of size 572.2 Mb # Can't go smaller anymore
> rm(list=ls(all=TRUE))
> a = matrix(NA, 3500000, 60) # Now it works
> b = matrix(NA, 3500000, 60)
Error: cannot allocate vector of size 801.1 Mb # But that is all there …Run Code Online (Sandbox Code Playgroud) vector<int> v;
v.push_back(1);
v.push_back(v[0]);
Run Code Online (Sandbox Code Playgroud)
如果第二个push_back导致重新分配,则向量中对第一个整数的引用将不再有效.那么这不安全吗?
vector<int> v;
v.push_back(1);
v.reserve(v.size() + 1);
v.push_back(v[0]);
Run Code Online (Sandbox Code Playgroud)
这样可以安全吗?
std::array和之间有什么区别std::vector?你什么时候使用其他?
我一直使用并认为std:vector是使用C数组的C++方式,那有什么区别?
我想创建一个向量,其中每个元素是i+6th另一个向量的元素.
例如,在长度为120的向量中,我想创建另一个长度为20的向量,其中每个元素是i, i+6, i+12, i+18...初始向量的值,即我想要提取原始的每个第6个元素.
R中向量和列表数据类型之间的主要区别是什么?使用(或不使用)这两种数据类型有哪些优缺点?
我希望看到演示数据类型用例的示例.
我有一个值数组,从程序的不同部分传递给我的函数,我需要存储以供以后处理.因为我不知道有多少次之前,它是时间来处理数据我函数将被调用做什么,我需要一个动态的存储结构,所以我选择了一个std::vector.我不想push_back单独对所有值进行标准循环,如果我可以使用类似的东西复制它,那将是很好的memcpy.