合并多列,排除空值

2023-12-22

我试图弄清楚如何组合多个列,不包括 NA 值。

输入数据框:

data <- data.frame(
  id = c(1:3),
  Item1 = c("Egg", "", ""),
  Item2 = c("Chicken", "Flour", ""),
  Item3 = c("", "", "Bread"),
  Item4 = c("", "Milk", "")
)

所需的数据框:

desired <- data.frame(
  id = c(1:3),
  Item1 = c("Egg", "", ""),
  Item2 = c("Chicken", "Flour", ""),
  Item3 = c("", "", "Bread"),
  Item4 = c("", "Milk", ""),
  Combine = c("Egg, Chicken", "Flour, Milk", "Bread")
)

我尝试使用以下代码组合这些值:

data$Combine = paste(data$Item1, data$Item2, data$Item3, data$Item4, sep=",")

问题是我得到的结果是这样的:

鸡蛋,鸡肉,,
,面粉,牛奶
,,面包,


如果我们使用与OP帖子中类似的方法,请将前导/滞后空格替换为""以及那些有多个重复的,与单个, using gsub

data$Combine <- gsub(",{2,}", ",", 
       gsub("^,+|,+$", "", do.call(paste, c(data[-1], sep=","))))
data$Combine
#[1] "Egg,Chicken" "Flour,Milk"  "Bread"

或者另一种选择是使用paste,删除前导/滞后空格(trimws),然后替换一个或多个空格(\\s+)与一个, using gsub

gsub("\\s+", ",", trimws(do.call(paste,  data[-1])))
#[1] "Egg,Chicken" "Flour,Milk"  "Bread"  

data

data <- structure(list(ID = 1:3, Item1 = c("Egg", "", ""), Item2 = c("Chicken", 
"Flour", ""), Item3 = c("", "", "Bread"), Item4 = c("", "Milk", 
"")), .Names = c("ID", "Item1", "Item2", "Item3", "Item4"),
class = "data.frame", row.names = c(NA, -3L))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

合并多列,排除空值 的相关文章

  • 在 Shiny 中设置一个绘图缩放以匹配另一个绘图缩放

    我正在尝试使用情节重排获取一个图的 x 轴缩放限制 并将它们应用到 Shiny 中的另一个图 到目前为止 我可以从 plot1 x轴限制 获取相关的plotly relayout数据 将其转换 从数字到日期 并在绘制 plot2 之前将其提
  • 将多个 csv 文件连接成具有相同标头的单个 csv

    我目前正在使用以下代码导入 6 000 个 csv 文件 带标题 并将它们导出到单个 csv 文件 带单个标题行 import csv files from folder path r data US market merged data
  • 如何生成向量的所有组合[重复]

    这个问题在这里已经有答案了 假设我有 3 个绿球 2 个橙球和 8 个黄球 我想订购它们 鉴于所有相同颜色的球都是相同的 如何生成所有可能的序列 在 R 中 使用gregmisc 我可以 balls lt c orange orange g
  • 如何调整ggplot直方图的时间刻度轴

    我正在使用一个数据框 其中一列包含POSIXct日期时间值 我正在尝试使用绘制这些时间戳的直方图ggplot2但我有两个问题 我不知道如何设置 binwidthgeom histogram 我想将每个垃圾箱设置为一天或一周 我尝试提供 di
  • 如何使用 r 中的 caret 包在最佳调整超参数的 10 倍交叉验证中获得每次折叠的预测?

    我试图使用 R 中的插入符包使用 10 倍交叉验证和 3 次重复来运行 SVM 模型 我想使用最佳调整的超参数获得每次折叠的预测结果 我正在使用以下代码 Load packages library mlbench library caret
  • 将 JSON URL 转换为 R 数据帧

    我在将 JSON 文件 从 API 转换为 R 中的数据帧时遇到问题 例如 URL 我尝试了 S O 的一些不同建议 包括将json数据转换为R中的数据框 https stackoverflow com questions 28683769
  • 如何使用 R 中带引号的字符值内的序列读取 CSV?

    这是一个包含两个字符列的 CSV 文件 key value a 所有字符值都用双引号引起来 并且有一个顺序 在值之一内 转义引号加分隔符 我无法通过 read csv readr 中的 read csv 或 data table 中的 fr
  • 查找数据帧列表中同一列中的所有重复值并将其转换为 NULL

    我有一个清单BELGIAN COAST list包含数百个数据帧 df1 df2 15 列 X 1000 行 每个数据帧的最后一列称为Chemicals并包含一些字符 例如Sulfate or Ammonia 但是这一列有很多行Chemic
  • 如何在 R 中为传单中的数值变量设置不对称颜色渐变

    我想让传单调色板以零为中心 红白绿发散 我已经尝试过中所说的这个帖子 https stackoverflow com questions 29262824 r center color palette on 0 当我尝试手动创建颜色时 我得
  • R 中的发散积分可在 Wolfram 中求解

    我知道我以前问过同样的问题 但由于我是新来的 这个问题问得不好而且不可重现 因此我在这里尝试做得更好 如果我只编辑旧的 可能没有人会读它 我有一个想要积分的二重积分 ff lt function g t exp 16 g exp 8 t t
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 仅保留百分比的尾随零

    给出以下示例 library pander tableAbs lt Titanic 1 1 tablePct lt round prop table tableAbs 100 2 table lt cbind tableAbs tableP
  • 将数据从 R 导出到 Excel

    我试图将从 R 获得的一些结果导出到 Excel 中 但未成功 我尝试过以下代码 write table ALBERTA1 D ALBERTA1 txt sep t write csv ALBERTA1 ALBERTA1 csv your
  • 比较 R 中的两个字符向量

    我有两个 ID 字符向量 我想比较这两个字符向量 特别是我对以下数字感兴趣 A和B各有多少个ID 有多少个ID在A中但不在B中 有多少个ID在B但不在A 我还想画维恩图 以下是一些可以尝试的基础知识 gt A c Dog Cat Mouse
  • 如何计算嵌套函数中的粘合表达式?

    我正在尝试嵌套一个函数 该函数将两个字符串粘合在一起 该函数使用组合字符串来命名数据帧的列 然而 问题似乎是粘合表达式没有足够早地评估为字符串 我可以 并且应该 强制在将表达式作为参数传递给另一个函数之前对其进行求值吗 library ti
  • ggplot散点图中的图例问题

    我想使用 ggplot 创建显示方法比较数据的散点图 绘图应包含原始数据 理想线和带误差的拟合线 图例应显示理想线和拟合线的线型 线宽 线颜色 我可以获得大部分我想要的东西 但是图例存在以下问题 图例显示每种线型有 2 条线 为什么 如何解
  • 如何匹配 R 中的所有匹配项?

    我有 1000 个名字的列表 说A 我还有另外 5 个名字的清单 说B 我想找出这5个名字出现在1000个号码列表中的第几行 例如 Amy 在 A 中可以出现 25 次 B 里有艾米 我想知道 Amy 出现在 A 中的哪些行 我以前使用过
  • R 中的 Websocket

    我设法在 R 中建立到 Mtgox websocket 的连接 规格如下 url https socketio mtgox com mtgox Currency USD https socketio mtgox com mtgox Curr
  • 替换字符串/文本中“从第 n 次到最后一次”出现的单词

    这个问题以前曾被问过 但尚未得到令提问者满意的答案 https stackoverflow com questions 36368712 how to use stringrs replace all function to replace
  • 非闪亮上下文中的反应式对象绑定

    实际问题 你怎样才能近似反应性环境 行为 http shiny rstudio com tutorial lesson6 建立者shiny http shiny rstudio com函数 或者甚至可能在一个函数中使用这些函数无光泽上下文以

随机推荐

  • Xcode 4:创建 UIView xib,未正确连接

    我正在尝试创建一个笔尖 其中包含将嵌入到 TableViewCell 中的视图 我已经创建了接口和实现文件 ResultCell h and ResultCell m 它们是现货 开箱即用 无需更改代码 然后 我创建一个空的 XIB 文件
  • Symfony 不加载页面

    我刚刚配置了Symfony3 4 15 在我的Ubuntu Server欢迎页面可以工作 但是当我想使用控制器创建一个新页面 例如 home 时 它不起作用 未找到 在此服务器上找不到请求的 URL home Apache 2 4 18 U
  • 将函数应用于 Python 字典的所有键

    我想转换 Python 字典的所有键 例如 如果键是整数 我想将每个键更改为原始值乘以100 实现这一目标的最高效的方法是什么 我现在这样做的方法是将原始密钥存储在set并删除这些键 用新键替换它们 这有一个问题 如果我有一个key 2 a
  • R Plotly - 设置高度时图表顶部和底部有大量未使用空间

    我正在尝试创建一个在 y 轴上包含分类数据的散点图 以便可以通过向下滚动来查看数据 为了实现这一点 我将刻度类型设置为 类别 将其模式设置为 线性 并手动设置高度 以便为绘图提供足够的空间来显示每个标签 然而 这让我在情节的顶部和底部留下了
  • App Engine 默认 Django 版本更改

    自从 App Engine 1 4 2 发布以来 我在生产日志中收到如下警告 您正在使用默认的 Django 版本 0 96 默认的 Django App Engine 中的版本将发生变化 在不久的将来发布 请 显式调用 use libra
  • 从 F# 调用具有多个参数的 C# 函数

    打电话很方便f Func lt T T gt 从 F 为 T gt T通过使用f Invoke 但我该怎么打电话f Func lt T T T gt 从 F 为 T gt T gt T 当我使用f Invoke I get T T gt T
  • 尝试以 pdf 形式查看数据,pdf 为空白

    我试图在下一个选项卡中打开 pdf 文件 它打开但始终为空白 我正在从 springboot 中的文件夹中调用 pdf 文件 数据确实显示在控制台日志中 弹簧代码 RequestMapping value report method Req
  • 如何从源映射中获取原始行号和符号

    我正在记录我网站上的 javascript 错误 但文件已最小化 因此我无法获得有意义的行号 不过 我确实有源地图 是否有服务 脚本 npm 模块或任何可以帮助我将缩小版本中的行号 翻译 为有用的内容的东西 我使用这个 npm 模块找到了答
  • 实体框架和使用 WCF 服务

    我正在获取隐藏在 WCF 服务后面的数据库的数据 在我有来自 Web 服务的自定义对象的场景中是否可以使用实体框架 无法访问外部数据库 当前没有插入 更新 删除逻辑的计划 从空的 EF 模型开始并添加一个实体 我在编译时收到此错误 没有为
  • 如何使用 Spring Security 3.1 更改当前用户的登录名?

    我要求每个用户在保持登录状态时都可以更改自己的用户名 问题是如何更新用户名 Principal 在 Spring Security 的身份验证令牌中 我必须更新它 因为我在某些业务用例中使用身份验证令牌中的主体名称来识别用户 我使用基于表单
  • 字节从 py2 到 py3 的行为变化

    讨论发生后我很好奇这个问题 https stackoverflow com questions 18616657 how to encode integer in to base64 string in python 3 看来 的行为byt
  • 为什么在运行时更改 LD_LIBRARY_PATH 不会在加载可执行文件后反映到可执行文件上

    我正在尝试改变LD LIBRARY PATH来自我的 C 程序 我可以使用它来获取它的值getenv LD LIBRARY PATH 并使用设置其值setenv http man7 org linux man pages man3 sete
  • 如何使用 MinGW 创建微型 PE (Win32) 可执行文件

    我有以下 C 程序 include
  • 如何在执行脚本之前自动清除 VSCode 中的终端? [复制]

    这个问题在这里已经有答案了 我目前正在使用 VS Code 来学习 Python 所以我必须每分钟运行 10 15 次脚本 只是做一些小的编辑并学习所有的东西 我正在 VS code 的集成终端中运行脚本 所以显然终端变得非常混乱 我必须始
  • Anaconda 与 Python 有何关系?

    我是初学者 我想学习计算机编程 所以 现在我已经开始自学Python 并掌握了一些C和Fortran编程的知识 现在 我已经安装了Python 3 6 0版本 并且我一直在努力寻找合适的文本来学习这个版本的Python 甚至在线讲座系列也要
  • 类型转换和类型转换之间的区别? [复制]

    这个问题在这里已经有答案了 可能的重复 铸造和转换之间有什么区别 https stackoverflow com questions 3166840 what is the difference between casting and co
  • 将配置文件的内容读取到与其关联的 dll 中

    我已将字符串保存在 dll 应用程序的设置中 我想找回它们 这是我的 dll 的配置文件
  • 如果已命中断点 A,则启用断点 B

    我经常发现自己在代码中的某处设置断点 A 并在命中断点时手动启用一个或多个断点 一个典型的情况是当我正在调试单元测试并且不关心前面的测试时 void testAddZeros Number a 0 Number b 0 Number res
  • 给定 WSDL 的 Web 服务客户端

    我正在尝试用 Java 创建一个 Web 服务客户端 我不知道该怎么做 这是 WSDL 的 URL https testservices gatewayedi com PayerList payerlist asmx wsdl https
  • 合并多列,排除空值

    我试图弄清楚如何组合多个列 不包括 NA 值 输入数据框 data lt data frame id c 1 3 Item1 c Egg Item2 c Chicken Flour Item3 c Bread Item4 c Milk 所需