我有一个科学记数法的数据列表,使用逗号代替点作为小数分隔符。我想将所有逗号更改为圆点。 在这里很棒的人告诉我如何为数据帧执行此操作:
text <- "3,063E+01 1,775E-02 6,641E-07 3,747E-02"
read.table(text=text, dec = ",")
V1 V2 V3 V4
1 30.63 0.01775 6.641e-07 0.03747
df <- read.table(text=text)
df <- sapply(df, gsub, pattern = ",", replacement= ".")
df <- sapply(df, as.numeric)
V1 V2 V3 V4
3.063e+01 1.775e-02 6.641e-07 3.747e-02
我想使用lapply对列表执行相同的操作,但它没有用完:
mferg_matrix[[1]]
X2 X3 X4
84 1,606E-07 1,642E-07 1,731E-07
85 2,883E-07 2,789E-07 2,554E-07
mferg_matrix <- lapply(mferg_matrix,gsub, pattern = ",", replacement= ".")
mferg_matrix[[1]]
[1] "c(30. 52)" "c(33. 55)" "c(35. 51)"
mferg_matrix <- lapply(mferg_matrix,as.numeric)
Es gab 11 Warnungen (Anzeige mit warnings())
> mferg_matrix[[1]]
[1] NA NA NA
使用sapply也没有用。
答案 0 :(得分:0)
您可能需要使用
lapply(mferg_matrix, function(x) {
x[] <- lapply(
lapply(x,gsub, pattern = ",", replacement= "."),
as.numeric)
x})
mferg_matrix <- list(structure(list(X2 = c("1,606E-07", "2,883E-07"),
X3 = c("1,642E-07","2,789E-07"), X4 = c("1,731E-07", "2,554E-07")),
.Names = c("X2", "X3", "X4"), class = "data.frame", row.names = c("84", "85")),
structure(list(X2 = c("1,606E-07", "2,883E-07"), X3 = c("1,642E-07",
"2,789E-07"), X4 = c("1,731E-07", "2,554E-07")), .Names = c("X2",
"X3", "X4"), class = "data.frame", row.names = c("84", "85"
)), structure(list(X2 = c("1,606E-07", "2,883E-07"), X3 = c("1,642E-07",
"2,789E-07"), X4 = c("1,731E-07", "2,554E-07")), .Names = c("X2",
"X3", "X4"), class = "data.frame", row.names = c("84", "85"
)))