首页 > 解决方案 > LIFO 将逗号分隔的行值转换为单独的行值的实现

问题描述

我有一个data frame单独的行值用逗号分隔,我想将逗号值分隔成单独的行值。因此,使用SO 帖子能够实现在单独的行中转换逗号分隔的字符串值,但是,如果字符串作为第一个值,如果行替换第一个值,并且我想要与此相反,即First string value is the last row value.

# create data 
library(tidyverse)
d <- data_frame(
  col1 = c("1,2,3")
)

Dataframe

    # # A tibble: 3 x 2
#              col1
#              <chr>
# 1            1,2,3


# tidy data
separate_rows(d, col1, convert = TRUE)

Current Output

# # A tibble: 6 x 2
#     col1
#    <int>
#      1
#      2
#      3

Desired Output

# tidy data
separate_rows(d, col1, convert = TRUE)
# # A tibble: 6 x 2
#     col1
#    <int>
#      3
#      2
#      1

标签: r

解决方案


用逗号分割列,反转向量,构造数据框。

样本数据:

> d = data.frame(col1=c("23,34,99","9,3,2"),stringsAsFactors=FALSE)
> d
      col1
1 23,34,99
2    9,3,2

做:

> data.frame(col1=do.call(c,lapply(strsplit(d$col1,","),rev)))
  col1
1   99
2   34
3   23
4    2
5    3
6    9

推荐阅读