我有两个不同大小的字符向量,比如a和b,我想形成一个新数据帧(df)的行名和列名。
如果我有一个带有2个参数的函数,每个向量中的一个元素,它将数据放入数据帧,我该如何创建它?
我已经尝试过查看map2,但它需要两个参数大小相同,而且我不太清楚如何使用apply函数。
答案 0 :(得分:0)
这是一个带有连接输入字符串
的函数的示例#DATA
a = letters[1:5]
b = letters[7:9]
#FUNCTION
foo = function(string1, string2){
paste(string1, string2, sep = "")
}
#Create a dataframe with input vectors and function
setNames(object = data.frame(sapply(a,
function(x) sapply(b,
function(y) foo(x, y))),
row.names = b),
nm = a)
# a b c d e
#g ag bg cg dg eg
#h ah bh ch dh eh
#i ai bi ci di ei
答案 1 :(得分:0)
以下是使用tidyverse
library(tidyverse)
crossing(a, col1 = b) %>%
unite(val, a, col1, sep="", remove = FALSE) %>%
spread(a, val)
# A tibble: 3 x 6
# col1 a b c d e
#* <chr> <chr> <chr> <chr> <chr> <chr>
#1 g ag bg cg dg eg
#2 h ah bh ch dh eh
#3 i ai bi ci di ei
a <- letters[1:5]
b <- letters[7:9]