Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R将非数字数据转换为数字数据_R - Fatal编程技术网

使用R将非数字数据转换为数字数据

使用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

我有一个以下格式的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
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"

以分隔符作为“;”
读入的行,在第二列上使用
计数。字段
,在第一列上使用
=
。以分隔符作为“;”
读入,在第二列上使用
计数。字段
,在第一列上使用
=
。。。。