[英]How to convert factors into numeric
我的數據:
data <- read.table(text = "Component Method Average StdErr
N170 Image 0,58904 0,0066948
P300 Image 0,84932 0,0048678
Sham Image 0,23944 0,0058078
N170 Topo 0,64384 0,0065159
P300 Topo 0,90278 0,0040316
Sham Topo 0,32877 0,0063921
N170 Joint 0,65278 0,0064788
P300 Joint 0,84722 0,0048959
Sham Joint 0,26230 0,0059937", header = TRUE)
我想用ggplot2繪制這個。 在嘗試計算誤差線時,我收到錯誤。 我發現這是因為“平均”是一個因素而不是數字。 運行我的代碼:
ggplot(data=data, aes(x=Method, y=Average, group=Component)) +
geom_line(aes(colour=Component), size=1)+
geom_pointrange(aes(ymin=Average-StdErr, ymax=Average+StdErr))+
geom_point(aes(colour=Component), size=3)+
theme_classic()
給我這個錯誤信息:
Warning messages: 1: In Ops.factor(Average, StdErr) : '-' not meaningful for factors 2: In Ops.factor(Average, StdErr) : '+' not meaningful for factors 3: Removed 9 rows containing missing values (geom_pointrange).
我嘗試使用此代碼將Average和StdErr轉換為數字,但它沒有解決我的問題。
data$Average <- as.numeric(data$Average)
data$StdErr <- as.numeric(as.vector(data$StdErr))
或者,我嘗試將我的數據作為.csv讀取:
data <- read.csv(file="C:/Users/XXX/Desktop/XXX/XX/ggplot/corrComp_agg.csv",
header=TRUE, sep=",")
但是收到一條錯誤消息:
Error in read.table(file = file, header = header, sep = sep, quote = quote, : more columns than column names
我錯過了什么?
你應該在read.table
語句中使用dec = ","
將逗號讀作十進制字符
data <- read.table(text = "Component Method Average StdErr
N170 Image 0,58904 0,0066948
P300 Image 0,84932 0,0048678
Sham Image 0,23944 0,0058078
N170 Topo 0,64384 0,0065159
P300 Topo 0,90278 0,0040316
Sham Topo 0,32877 0,0063921
N170 Joint 0,65278 0,0064788
P300 Joint 0,84722 0,0048959
Sham Joint 0,26230 0,0059937", dec =",", header = TRUE)
現在您的Average
和StdErr
是數字
sapply(data, class)
#Component Method Average StdErr
# "factor" "factor" "numeric" "numeric"
因此,繪圖現在很容易
ggplot(data=data, aes(x=Method, y=Average, group=Component)) +
geom_line(aes(colour=Component), size=1)+
geom_pointrange(aes(ymin=Average-StdErr, ymax=Average+StdErr))+
geom_point(aes(colour=Component), size=3)+
theme_classic()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.