我有两个不同长度的命名数组:
x = setNames(c(0.3,0.5,0.1,0.2),c(4,5,7,9))
y = setNames(c(0,0,0,0,0,0,0,0,0),c(2,3,4,5,6,7,8,9,10))
我希望通过列名联合(或更好地:添加)它们,结果是:
2 3 4 5 6 7 8 9 10
0.0 0.0 0.3 0.5 0.0 0.1 0.0 0.2 0.0
也许我应该提一下,其中一个数组实际上是类table
,据我所知,它与命名数组没什么不同。
答案 0 :(得分:3)
您可以对元素进行子集化,以指示名称而不是索引。这适用于您的示例:
y[names(x)]<-x
# 2 3 4 5 6 7 8 9 10
#0.0 0.0 0.3 0.5 0.0 0.1 0.0 0.2 0.0
答案 1 :(得分:0)
不是解决方案,而是解决方法。此外,通过这种方式,您可以按名称汇总(public class AppServletContextListener
implements ServletContextListener, HttpSessionAttributeListener, HttpSessionListener {
@Value("${REP_MAN_INIT_SCRIPT}")
private String repManInitScript;
public void contextInitialized(ServletContextEvent arg0) {
repManInitScript = System.getProperty("REP_MAN_INIT_SCRIPT");
System.err.println(repManInitScript );
}
}
,如果正确理解了您的问题)。
<强> 数据 强>
add
<强> 代码 强>
x = setNames(c(0.3,0.5,0.1,0.2),c(4,5,7,9))
y = setNames(c(1, 1, 1, 1, 1, 1, 1, 1, 1),c(2,3,4,5,6,7,8,9,10))
<强> 结果 强>
library(dplyr)
df <- full_join(data.frame(var=x) %>% mutate(names = names(x)),
data.frame(var=y) %>% mutate(names = names(y))) %>% group_by(names) %>%
summarise(var=sum(var)) %>% arrange(as.numeric(names))
z <- setNames(df$var, df$names)
z