当我将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
我想在此数据框中使 SoftwareOwner 成为一个列表,所以我尝试了简单的解决方案
> df$SoftwareOwner <- as.list(df$SoftwareOwner)
但所有这一切都是使列中的每个条目都有一个条目
> df$SoftwareOwner[2]
[[1]]
[1] "Autodesk, TeamViewer, Siemens"
我已尝试将 sep =&#34;,&#34; 和 all.names = TRUE 等参数添加到 as.list 但都没有奏效。在调用类似上面的内容时,有没有办法只访问 Autodesk 或 TeamViewer 或 Siemens ?
答案 0 :(得分:0)
我是否可以建议将Siemens,Autodesk,Teamviewer等用于自己的列并编写1或0来表示所有权?根据我的经验,这是一种更灵活的方法。
答案 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"