R 将字符列转换为数据帧内的列表

R 将字符列转换为数据帧内的列表,r,R,当我将csv文件读入df时,SoftwareOwner是一个字符列 > df Software SoftwareOwner <chr> <chr> 1 I-DEAS Siemens 2 TeamViewer Autodesk, TeamViewer, Siemens 3 Inventor PTC, Google, SpaceClaim, Bricys 4 AutoCAD Autodesk 我尝试将se

当我将csv文件读入df时,SoftwareOwner是一个字符列

> df
   Software    SoftwareOwner
   <chr>       <chr>
1  I-DEAS      Siemens
2  TeamViewer  Autodesk, TeamViewer, Siemens
3  Inventor    PTC, Google, SpaceClaim, Bricys
4  AutoCAD     Autodesk

我尝试将sep=“,”和all.names=TRUE等参数添加到as.list中,但都不起作用。在调用类似于我上面提到的内容时,有没有办法仅访问Autodesk、TeamViewer或Siemens?

我是否可以建议将Siemens、Autodesk、TeamViewer等设置为自己的列,并将其编码为1或0以表示所有权?根据我的经验,这是一种更加灵活的方法

一个可能的解决方案:

# recreate your data.frame
df <- read.csv(text=
"Software;SoftwareOwner
I-DEAS;Siemens
TeamViewer;Autodesk, TeamViewer, Siemens
Inventor;PTC, Google, SpaceClaim, Bricys
AutoCAD;Autodesk",sep=";")


df$SoftwareOwner <- lapply(strsplit(as.character(df$SoftwareOwner),split=','),trimws)


# > df$SoftwareOwner
# [[1]]
# [1] "Siemens"
# 
# [[2]]
# [1] "Autodesk"   "TeamViewer" "Siemens"   
# 
# [[3]]
# [1] "PTC"        "Google"     "SpaceClaim" "Bricys"    
# 
# [[4]]
# [1] "Autodesk"


# > df$SoftwareOwner[[2]][3]
# [1] "Siemens"

# > df$SoftwareOwner[[3]][2]
# [1] "Google"
#重新创建您的data.frame
df$SoftwareOwner[[2]][3]
#[1]“西门子”
#>df$SoftwareOwner[[3]][2]
#[1]“谷歌”

请发布
dput(head(df))的输出。
我已经看到了您想要的格式,但我相信它在base R中找不到。为什么不将data.frame转换为列表呢?R中的Data.frames本质上是带有一些限制的列表。
> df$SoftwareOwner[2]
[[1]]
[1]  "Autodesk, TeamViewer, Siemens"
# recreate your data.frame
df <- read.csv(text=
"Software;SoftwareOwner
I-DEAS;Siemens
TeamViewer;Autodesk, TeamViewer, Siemens
Inventor;PTC, Google, SpaceClaim, Bricys
AutoCAD;Autodesk",sep=";")


df$SoftwareOwner <- lapply(strsplit(as.character(df$SoftwareOwner),split=','),trimws)


# > df$SoftwareOwner
# [[1]]
# [1] "Siemens"
# 
# [[2]]
# [1] "Autodesk"   "TeamViewer" "Siemens"   
# 
# [[3]]
# [1] "PTC"        "Google"     "SpaceClaim" "Bricys"    
# 
# [[4]]
# [1] "Autodesk"


# > df$SoftwareOwner[[2]][3]
# [1] "Siemens"

# > df$SoftwareOwner[[3]][2]
# [1] "Google"