r - 将一个单元格中的多个值分成多个单元格
问题描述
我正在处理专利数据,我在一个单元格中有多个值(国际专利分类),用逗号分隔。例如:C12N、C12P、A01(在一个单元内)。我想分析每个专利有多少种不同的 4 位数分类。为此,我需要首先将各个值分开并将它们中的每一个放入一个单独的单元格中。其次,我需要计算每一行的唯一值(然后将每个值放在单独的列中)。
如何将一个单元格中的单个值分隔为 Excel 或 R 中的多个单元格。您可以建议任何 excel 或 R 函数吗?
这是关于数据在 R 或 Excel 中的样子的可重现示例。
#Example of how the data looks like
Publication_number<-c(12345,10012,23323,44556,77999)
IPC_class_4_digits<-c("C12N,CF01,C345","C12P,F12N,F039","A014562,F23N", "A01C, A01B, A01F, A01K, A01G", "C10N, C10R, C10Q, C12F")
data_example<-cbind(Publication_number, IPC_class_4_digits)
View(data_example)
预期的大约应该是一列“计数”,计算不同 4 位数字的数量。在这种情况下 => c(3, 3, 2, 5, 4)
解决方案
假设您有一个包含两列的数据框,Publication_number
并且IPC_class_4_digits
可以cSplit
从splitstackshape
包中使用:
library(splitstackshape)
# assuming your data
df <- data.frame(Publication_number, IPC_class_4_digits)
cSplit(df, 'IPC_class_4_digits', ',')
输出:
Publication_number IPC_class_4_digits_1 IPC_class_4_digits_2 IPC_class_4_digits_3
1: 12345 C12N CF01 C345
2: 1001 C12P F12N F039
3: 2332 A014562 F23N <NA>
推荐阅读
- oauth-2.0 - 特定于资源的 OAuth2 授权的常见做法?
- python - Numpy 切片数组内存消耗
- javascript - 有没有更简洁的方法来检查是否存在深层嵌套节点?
- python - 如果行值在python中的x之间,则替换整个列
- mysql - 递归sql查询中的无限循环
- saleor - 我们如何在 Saleor 仪表板中翻译产品属性?
- java - 通过 CLI 配置时,Wildfly 数据源启用在运行时不起作用
- r - 使用 lme4 的线性混合模型:合适的公式?
- php - 我正在使用 PHP 联系表格。我在本地工作时发送的邮件。显示使用服务器成功消息,但收不到邮件
- ruby - 在 Ruby 中运行自定义方法的“整数的未定义方法”