r语言 - 读取txt文件,使ggplot2频率多边形



我有一个txt文件:

[global]
SCRIPT_NAME=performance.vbs
SCRIPT_ISSUER=nova ratio AG
SCRIPT_VERSION_COUNTER=1.0
SYSTEM_NAME=ko-pc-3
datadesc=CPU_user;CPU_sys;CPU_idle;CPU_wait;CSW_cswch_s;PROC_plst_sz;PROC_runqsz;MEM_phys_kB;MEM_ab_kB;MEM_u_pct;MEM_cf_s;MEM_pf_s;MEM_pr_s;MEM_pw_s;NET_count;NET_rxkB_s;NET_tkB_s;NET_txkB_s;NET_rxkB_s_if0001;NET_tkB_s_if0001;NET_txkB_s_if0001;NET_rxkB_s_if0002;NET_tkB_s_if0002;NET_txkB_s_if0002;DISK_p_dr_kB_s;DISK_p_dw_kB_s;DISK_p_adql;DISK_p_dt;DISK_p_cdql;DISK_p_dr_s;DISK_p_dr_s;DISK_p_it;DISK_p_adwql;
[data]
1386716402=U;U;U;U;U;31;4;8255744;782728;U;U;U;U;U;2;0;0;0;U;U;U;U;U;U;U;U;U;U;0;U;U;U;U;
1386716702=0;0.06;99.95;0.02;91.93;29;3;8255744;785120;U;0.02;0.58;0;0;2;0.30;0.31;0.01;0.30;0.31;0.01;0;0;0;0;5.82;0.01;0.04;0;0;1.01;100.24;0.01;
1386717002=0.01;0.04;99.97;0.03;19.46;29;1;8255744;785200;U;0;0.04;0;0;2;0.07;0.07;0.01;0.07;0.07;0.01;0;0;0;0;0.75;0.01;0.03;0;0;0.13;501.27;0.01;
1386717302=0.01;0.05;99.96;0.04;92.54;29;1;8255744;785380;U;0.02;0.21;0;0;2;0.32;0.33;0.02;0.32;0.33;0.02;0;0;0;0;3.68;0.01;0.03;0;0;0.60;100.25;0.01;
1386717602=0;0.04;99.97;0.04;U;29;1;8255744;785416;U;U;U;U;U;2;0;0;0;U;U;U;U;U;U;U;U;0.01;0.03;0;U;U;U;0.01;
1386717902=0;0.05;99.96;0.02;99.86;29;2;8255744;785392;U;0;0.23;0;0;2;0.48;0.50;0.02;0.48;0.50;0.02;0;0;0;0;3.67;0.01;0.03;0;0;0.60;100.25;0.01;
1386718202=0;0.03;99.98;0.02;18.32;29;1;8255744;785368;U;0;0.05;0;0;2;0.06;0.06;0.01;0.06;0.06;0.01;0;0;0;0;0.74;0.01;0.03;0;0;0.12;501.27;0.01;
1386718502=0;0.03;99.98;0.02;88.80;29;1;8255744;785436;U;0.01;0.22;0;0;2;0.30;0.31;0.01;0.30;0.31;0.01;0;0;0;0;3.66;0.01;0.03;0;0;0.60;100.26;0.01;
1386718802=0.01;0.04;99.96;0.03;U;29;2;8255744;785332;U;U;U;U;U;2;0;0;0;U;U;U;U;U;U;U;U;0.01;0.03;0;U;U;U;0.01;
1386719102=0;0.04;99.97;0.02;93.37;29;1;8255744;785444;U;0;0.24;0;0;2;0.31;0.32;0.01;0.31;0.32;0.01;0;0;0;0;3.63;0.01;0.03;0;0;0.59;100.25;0.01;

我想读取它并制作一个频率多边形图。

我试着读。Fwf,但它不起作用。我是R的新手,谢谢你的帮助=)

你应该仔细学习扫描函数。这是读取非二进制文件的最快方式。类型:

?scan

在你的例子中,它应该是这样的:

# extract colnames
colNames <- scan(file        = "data.csv",
                 skip        = 5,
                 nlines      = 1,
                 what        = character(),
                 sep         = ";")
# clean first record
colNames[1] <- sub("^[^=]*=", "", colNames[1])
colNames

然后获取数据:

# Extract Data
mydata <- matrix(scan(file        = "data.csv",
                      skip        = 7,
                      what        = character(),
                      na.strings  = "U",
                      sep         = ";"),
                 ncol   = length(colNames),
                 byrow  = TRUE)
#
# clean first record
mydata[,1] <- sapply(mydata[,1], function(x) sub("^[^=]*=", "",x))
# transform the first "U" into NA
mydata[,1] <- ifelse(mydata[,1] == "U", NA, mydata[,1])
# transform data into numeric
mydata <- matrix(as.numeric(mydata),
                 ncol   = length(colNames),
                 byrow  = TRUE)
# add column names
colnames(mydata) <- colNames
head(mydata)

那么你只需要找出如何绘制多边形

最新更新