【问题标题】:Concatenating every values in Two columns连接两列中的每个值
【发布时间】:2019-10-31 05:24:41
【问题描述】:

我有两列需要联系它们的值。例如,我有颜色(黑色、蓝色、红色、紫色、黄色)和服装(连衣裙、鞋子、T 恤、长衫)列。然后我想要黑色连衣裙、黑色鞋子、黑色 T 恤、黑色长衬衫、蓝色连衣裙、蓝色鞋子、蓝色 T 恤等)

我尝试过使用 for 循环和粘贴函数,但它并没有像我希望的那样工作。

A <- colour
B <- Clothing

 for(i in count(A)){ paste( print(A[i]) ,
             for (i in count(B)) {print(B[i])} 
      )
    }

【问题讨论】:

  • 只需使用 cbind(A,B) 来提供您想要的。或者,根据您的需要粘贴(A,B)。

标签: r loops concat string-concatenation


【解决方案1】:

我们可以使用outer

outer(A, B, FUN = paste)
#  [,1]           [,2]          [,3]             [,4]               
#[1,] "Black Dress"  "Black Shoe"  "Black T-shirt"  "Black Long-shirt" 
#[2,] "Blue Dress"   "Blue Shoe"   "Blue T-shirt"   "Blue Long-shirt"  
#[3,] "Red Dress"    "Red Shoe"    "Red T-shirt"    "Red Long-shirt"   
#[4,] "Purple Dress" "Purple Shoe" "Purple T-shirt" "Purple Long-shirt"
#[5,] "Yellow Dress" "Yellow Shoe" "Yellow T-shirt" "Yellow Long-shirt"

或与map 来自purrr

library(purrr)
map(A, ~ str_c(.x, B, sep= " ")) %>%
      flatten_chr
#[1] "Black Dress"       "Black Shoe"        "Black T-shirt"     "Black Long-shirt"  "Blue Dress"        "Blue Shoe"        
#[7] "Blue T-shirt"      "Blue Long-shirt"   "Red Dress"         "Red Shoe"          "Red T-shirt"       "Red Long-shirt"   
#[13] "Purple Dress"      "Purple Shoe"       "Purple T-shirt"    "Purple Long-shirt" "Yellow Dress"      "Yellow Shoe"      
#[19] "Yellow T-shirt"    "Yellow Long-shirt"

数据

A <- c("Black", "Blue", "Red", "Purple", "Yellow")
B <- c("Dress", "Shoe", "T-shirt", "Long-shirt")

【讨论】:

    【解决方案2】:

    如果你想要一个矩阵:

    > sapply(A,function(x) paste(x,B))
         Black              Blue              Red              Purple              Yellow             
    [1,] "Black Dress"      "Blue Dress"      "Red Dress"      "Purple Dress"      "Yellow Dress"     
    [2,] "Black Shoe"       "Blue Shoe"       "Red Shoe"       "Purple Shoe"       "Yellow Shoe"      
    [3,] "Black T-shirt"    "Blue T-shirt"    "Red T-shirt"    "Purple T-shirt"    "Yellow T-shirt"   
    [4,] "Black Long-shirt" "Blue Long-shirt" "Red Long-shirt" "Purple Long-shirt" "Yellow Long-shirt"
    

    一个向量:

    > as.vector(sapply(A,function(x) paste(x,B)))
     [1] "Black Dress"       "Black Shoe"        "Black T-shirt"     "Black Long-shirt"  "Blue Dress"        "Blue Shoe"        
     [7] "Blue T-shirt"      "Blue Long-shirt"   "Red Dress"         "Red Shoe"          "Red T-shirt"       "Red Long-shirt"   
    [13] "Purple Dress"      "Purple Shoe"       "Purple T-shirt"    "Purple Long-shirt" "Yellow Dress"      "Yellow Shoe"      
    [19] "Yellow T-shirt"    "Yellow Long-shirt"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-14
      • 2022-12-04
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多