问题描述:

CSV file looks like this (modified for brevity). Several columns have spaces in their title and R can't seem to distinguish them.

Alias;Type;SerialNo;DateTime;Main status; [...]

E1;E-70;781733;01/04/2010 11:28;8; [...]

Here is the code I am trying to execute:

s_data <- read.csv2( file=f_name )

attach(s_data)

s_df = data.frame(

scada_id=ID,

plant=PlantNo,

date=DateTime,

main_code=Main status,

seco_code=Additional Status,

main_text=MainStatustext,

seco_test=AddStatustext,

duration=Duration)

detach(s_data)

I have also tried substituting

main_code=Main\ status

and

main_code="Main status"

网友答案:

Unless you specify check.names=FALSE, R will convert column names that are not valid variable names (e.g. contain spaces or special characters or start with numbers) into valid variable names, e.g. by replacing spaces with dots. Try names(s_data). If you do use check.names=TRUE, then use single back-quotes (`) to surround the names.

I would also recommend using rename from the reshape package.

s_data <- read.csv2( file=f_name )
library(reshape)
s_df <- rename(s_data,ID="scada_id",
               PlantNo="plant",DateTime="date",Main.status="main_code",
               Additional.status="seco_code",MainStatustext="main_text",
               AddStatustext="seco_test",Duration="duration")
网友答案:

I believe spaces get replaced by dots "." when importing CSV files. So you'd write e.g. Main.status. You can check by entering names(s_data) to see what the names are.

网友答案:

s_data <- read.csv( file=f_name , check.names=FALSE)

相关阅读:
Top