r - 如何根据以某个前缀开头的一列名称值将数据帧拆分为不同的数据帧?

标签 r dataframe split

如何根据一个列名称将数据帧拆分为不同的数据帧,比如 ##sensor_name ## 以 R 中的“RI_”、“AI_”等前缀开头的值,这样我就可以有两个数据帧,一个用于 RI,另一个用于人工智能?

我已经尝试了以下代码,但是当我旋转数据框时,它效果很好。

map(set_names(c("RI", "AI","FI")),~select(temp_df,starts_with(.x),starts_with("time_stamp")))

original dataframe

我希望输出有两个不同的数据帧,

RI_df:

enter image description here

AI_df:

enter image description here

由于我刚刚开始研究 R 编程语言,如果有人能帮助我,那就太好了。

最佳答案

一个选项是从基础R分割

lst1 <- split(df1, substr(df1$sensor_name, 1,2))
names(lst1)  <- paste0(names(lst1), "_df")

如果前缀长度可变

lst1 <- split(df1, sub("_.*", "", df1$sensor_name))

或者使用tidyverse

library(dplyr)
df1 %>%
    group_split(grp = str_remove(sensor_name, "_.*"), keep = FALSE)

注意:不建议在全局环境中拥有多个对象。因此,请将其保留在 list 中,并对该 list 本身进行所有分析

关于r - 如何根据以某个前缀开头的一列名称值将数据帧拆分为不同的数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57431207/

相关文章:

java - 字符串分割赋值

python - 如何用模式(正则表达式)替换部分字符串在数据框中抛出行

r - 从汇总的 df 创建原始选择数据框

pandas - 创建 Pandas 数据帧,每个元素都是从其他数据帧创建的元组

r - 在shinyR仪表板中为ggplot2创建动态相关输入过滤器并相应地渲染绘图

javascript - 用多个分隔符拆分字符串,保留它们并在双引号中忽略它们

python - 如何拆分字符串分隔的数字

r - 使用系统中的多个命令从 R 调用外部程序

r - 使用 ggplot 线和堆积条形图旋转数据

r - 如何根据一个数据帧中的列的值和R中另一个数据帧的列标题名称有条件地创建新列