【发布时间】:2017-05-18 15:02:32
【问题描述】:
我不得不说我半小时前才开始使用 R,从 SQL Server 运行 R 脚本,所以我是他们所说的完全菜鸟。
我正在尝试将两个 R 向量合并到一个数据框中,但我的问题是向量的长度不同。
我不确定这是否可以做到,虽然我不一定明白为什么不这样做?
我的 R 脚本是:
n <- c(2, 3, 5, 6);
s = c("aa", "bb", "cc");
df = data.frame(n, s);
我得到的错误是:
data.frame(n, s) 中的错误:参数意味着不同的数量 行:4、3 调用:source -> withVisible -> eval -> eval -> data.frame
ScaleR 中的错误。检查输出以获取更多信息。错误 eval(expr,envir,enclos):ScaleR 中的错误。检查输出 更多信息。调用:source -> withVisible -> eval -> eval -> .调用执行停止
基本上我正在想象做的是生成一个类似于LEFT JOIN 的结果集。
2 aa
3 bb
5 cc
6 NULL
我问自己是否应该在 R 数据框中指定“替换 NULL”值,但我不确定这是否是一个解决方案。
【问题讨论】:
-
那里不能有
NULL,而是NA(用于丢失):L = list(n = n, s = s); data.frame(lapply(L, `length<-`, max(lengths(L))))。我想这有一些骗局。 -
酷,让我知道进展如何。如果您有任何 cmets 或建议,请在 R 聊天室chat.stackoverflow.com/rooms/25312/r-public 否决票可能来自那些认为您应该自己找到欺骗的人(在这种情况下不是我)。 (顺便说一句,我在欺骗目标列表中添加了 Nico 的链接。)
-
@Frank 感谢您提供更多信息!我猜在这种基本类型的场景中很可能会被骗,但是像我这样有限的上下文和 R 知识,这似乎有点“不公平”。虽然我确实花时间查看 Stackoverflow 建议的问题,看看问题是否相似(但它们不是)。
-
谢谢@NicoCoallier!我一定会关注您的所有链接!我正处于尝试了解 R 并尽可能多地理解的状态,所以每条评论对我来说都是一个迷你金矿。
-
@RaduGheorghiu 我目前正在研究一个 R 格式......它目前只有法语,但看看脚本你会很好地理解数据类型和格式...... .github.com/NicoCoallier/Formation_R/blob/master/…我很快就会做一个英文的:)
标签: r vector dataframe merge sql-server-2016