当前位置: 首页 > 知识库问答 >
问题:

数据帧的字符向量

昌博易
2023-03-14

我有以下格式的数据。向量的第一个元素指的是标题,向量的第二个到底部指的是针对标题的值。我希望以表格/结构化格式(或带有标题和值的数据框)放置数据。

k <- c("Afv.dato : Type Termin lalt Betalt pa termin Terminsbelgb", "13-09-2019 opkrzvning 11-09-2019 4.067,11",
  "18-10-2019 indbetaling 4.067,00 11-09-2019 4.067,00", "11-12-2019 opkrzvning 11-12-2019 9.176,00" ,
  "18-12-2019 indbetaling 9.176,11 11-09-2019 0,11", "11-12-2019 9.176,00", "11-03-2020 opkreevning 11-03-2020 9.176,00", 
  "02-03-2020 indbetaling 9.176,00 11-03-2020 9.176,00", "11-06-2020 opkraevning 11-06-2020 9.176,00",
  "18-05-2020 indbetaling 9,176,00 11-06-2020 9.176,00"         
)

共有2个答案

乐正锦
2023-03-14

我会这样做。其思想是read_lines()将向量的每个元素放在一行中。然后,将此结果交给一个函数,该函数通常用于读取平面文件。这些函数通常使用文件的第一行作为列名。

library(readr) 

k <- c("Afv.dato : Type Termin lalt Betalt pa termin Terminsbelgb", "13-09-2019 opkrzvning 11-09-2019 4.067,11",
       "18-10-2019 indbetaling 4.067,00 11-09-2019 4.067,00", "11-12-2019 opkrzvning 11-12-2019 9.176,00" ,
       "18-12-2019 indbetaling 9.176,11 11-09-2019 0,11", "11-12-2019 9.176,00", "11-03-2020 opkreevning 11-03-2020 9.176,00", 
       "02-03-2020 indbetaling 9.176,00 11-03-2020 9.176,00", "11-06-2020 opkraevning 11-06-2020 9.176,00",
       "18-05-2020 indbetaling 9,176,00 11-06-2020 9.176,00"         
)

read_csv(read_lines(k))
朱运诚
2023-03-14

您可以使用strcapture进行尝试。

strcapture("(\\d+-\\d+-\\d+) *(\\D*) *(\\d+-\\d+-\\d+)* *([0-9.,]*) *(\\d+-\\d+-\\d+)* *([0-9.,]*)",
 k[-1], data.frame(Afv.dato=character(), Type=character(), Termin=character(),
 lalt=character(), "Betalt pa termin"=character(), Terminsbelgb=character()))
#    Afv.dato         Type     Termin     lalt Betalt.pa.termin Terminsbelgb
#1 13-09-2019  opkrzvning  11-09-2019 4.067,11                              
#2 18-10-2019 indbetaling             4.067,00       11-09-2019     4.067,00
#3 11-12-2019  opkrzvning  11-12-2019 9.176,00                              
#4 18-12-2019 indbetaling             9.176,11       11-09-2019         0,11
#5 11-12-2019                         9.176,00                              
#6 11-03-2020 opkreevning  11-03-2020 9.176,00                              
#7 02-03-2020 indbetaling             9.176,00       11-03-2020     9.176,00
#8 11-06-2020 opkraevning  11-06-2020 9.176,00                              
#9 18-05-2020 indbetaling             9,176,00       11-06-2020     9.176,00
 类似资料:
  • 整理周二的数据集,我看不到如何拆分“流派”列。我试过:

  • 我想转换一个组织。阿帕奇。火花sql。数据框到组织。阿帕奇。火花rdd。RDD[(字符串,字符串)]在数据块中。有人能帮忙吗? 背景(也欢迎使用更好的解决方案):我有一个Kafka流,它(经过一些步骤)变成了2列数据帧。我想将其放入Redis缓存,第一列作为键,第二列作为值。 更具体地说,输入的类型是:。我尝试将以下内容放入Redis: 错误消息如下所示: 我已经尝试过一些想法(比如函数、rdd)

  • 通常,人们会在打印输出(数据帧)时询问堆栈溢出问题。如果有一种方法可以将数据帧数据快速加载到对象中,那么这是很方便的。 从数据帧字符串(可能格式正确,也可能格式不正确)加载数据帧的最有建议的方法是什么? 如果要将以下字符串作为数据帧加载,您会怎么做? 此类型与您在文件中找到的更相似。 注意:以下两个链接不涉及示例-1中提出的具体情况。我认为我的问题不是重复的原因是,我认为不能使用已经发布在这些链接

  • 如何使用Spark-Scala连接日期和时间列(两个字符串)

  • 我有这种情况: 其中变量名和相对数据存储在字符串中,如上例所示。特别是,每个variable_name/its_data单元由分隔。在是相对数据。 我想要一个这样的最终数据帧:

  • 我有一个熊猫数据框,看起来像这样: 预期结果应该是: 如何有效地从列和整个数据帧中删除具有的所有字符串? 我尝试使用以下正则表达式: 然而,我不知道是否有更简单或更健壮的方法从我的数据框中删除所有这些子串。如何删除开头有的所有字符串? 更新 我试过: 它是有效的,但是我想知道是否有更有效的方法。可能是一个正则表达式。