使用R将非数字数据转换为数字数据
我有一个以下格式的csv文件:使用R将非数字数据转换为数字数据,r,R,我有一个以下格式的csv文件: android ; login.html , connect.json , page1.json windows ; login.html , connect.json , page1.json , page2.html , page5.html windows ; login.html , connect.json , page4.json 要使用这些变量进行PCA多元分析,这些变量必须是如下所示的数字: 1 ; 3 0 ; 5 0 ; 3
android ; login.html , connect.json , page1.json
windows ; login.html , connect.json , page1.json , page2.html , page5.html
windows ; login.html , connect.json , page4.json
要使用这些变量进行PCA多元分析,这些变量必须是如下所示的数字:
1 ; 3
0 ; 5
0 ; 3
0或1表示是windows还是android,后跟页数。
我正在寻找一种方法来修改这些非数字数据
有什么想法吗?
最佳方法这里有一种方法:
data.frame(V1 = as.numeric(mydf$V1 == "android"),
V2 = count.fields(textConnection(mydf$V2), sep = ","))
# V1 V2
# 1 1 3
# 2 0 5
# 3 0 3
样本数据:
mydf <- read.table(
header = FALSE, sep = ";", stringsAsFactors = FALSE, strip.white = TRUE,
text = '"android" ; "login.html , connect.json , page1.json"
"windows" ; "login.html , connect.json , page1.json , page2.html , page5.html"
"windows" ; "login.html , connect.json , page4.json"')
mydf这里有一种方法:
data.frame(V1 = as.numeric(mydf$V1 == "android"),
V2 = count.fields(textConnection(mydf$V2), sep = ","))
# V1 V2
# 1 1 3
# 2 0 5
# 3 0 3
样本数据:
mydf <- read.table(
header = FALSE, sep = ";", stringsAsFactors = FALSE, strip.white = TRUE,
text = '"android" ; "login.html , connect.json , page1.json"
"windows" ; "login.html , connect.json , page1.json , page2.html , page5.html"
"windows" ; "login.html , connect.json , page4.json"')
mydf尝试strsplit
和length
:
DF <- read.table(text = Lines, sep = ";", as.is = TRUE, strip.white = TRUE)
transform(DF, V1 = as.numeric(V1 == "android"), V2 = lengths(strsplit(V2, ",")))
注意:我们使用了以下输入:
Lines <- "android ; login.html , connect.json , page1.json
windows ; login.html , connect.json , page1.json , page2.html , page5.html
windows ; login.html , connect.json , page4.json"
行尝试strsplit
和长度
:
DF <- read.table(text = Lines, sep = ";", as.is = TRUE, strip.white = TRUE)
transform(DF, V1 = as.numeric(V1 == "android"), V2 = lengths(strsplit(V2, ",")))
注意:我们使用了以下输入:
Lines <- "android ; login.html , connect.json , page1.json
windows ; login.html , connect.json , page1.json , page2.html , page5.html
windows ; login.html , connect.json , page4.json"
以分隔符作为“;”
读入的行,在第二列上使用计数。字段
,在第一列上使用=
。以分隔符作为“;”
读入,在第二列上使用计数。字段
,在第一列上使用=
。。。。