我有一些格式不太方便的数据。它被保存为一个矩阵,所有的列向量都是字符。
datamatrix <- structure(c("1", "2", "3", "4", "0.9301", "0.93", "0.9286", "0.9209",
"0.9", "0.8064", "0.7947", "0.7607", "0.8042", "0.7847", "0.7832",
"0.7578", "0.7487", "0.7105", "0.6566", "0.5951", "0.6951", "0.677",
"0.6588", "0.5922", "0.6889", "0.6471", "0.6524", "0.5932"), .Dim = c(4L,
7L))
Run Code Online (Sandbox Code Playgroud)
我的目标是将此矩阵转换为数据框,并将列向量转换为数值类。
我尝试了以下程序:
1)
datamatrix2 <- as.data.frame(datamatrix)
datamatrix2 <- as.numeric(datamatrix2)
Run Code Online (Sandbox Code Playgroud)
这给出了错误:
"Error: (list) object cannot be coerced to type 'double'"
Run Code Online (Sandbox Code Playgroud)
2)所以我用sapply试试:
datamatrix3 <- as.data.frame(sapply(datamatrix, as.numeric))
Run Code Online (Sandbox Code Playgroud)
这将我之前拥有的所有列都放在长列中。
3)当我对已经转换为数据帧(但仍然是字符向量)的数据使用 2) 中的应用函数时,它从第一列 (1,2,3,4) 中获取值并将其放入所有其他列(但按降序排列)。
datamatrix4 <- as.data.frame(sapply(datamatrix2, as.numeric))
Run Code Online (Sandbox Code Playgroud) 我想在ggplot中绘制不同数据组之间的连续线.我的数据集有三组数据1,2或3.
ggplot(Dataset_v2.2.clusterplot, aes(Date, Number_IPOs, color = factor(label)))+
geom_point()+
geom_line()
Run Code Online (Sandbox Code Playgroud)
我的问题是,对于绿色的组2,数据以不同的时间间隔传播,因此,ggplot连接它们.实际上,ggplot基于color命令将我的数据三行显示出来,其中最初只有一行如下:
有没有办法根据三个组对线路进行着色而不会在组内部和互连之间中断(当它们被传播时)?
这是数据:
Dataset_v2.2.clusterplot <- structure(list(Date = structure(c(959817600, 962409600, 965088000,
967766400, 970358400, 973036800, 975628800, 978307200, 980985600,
983404800, 986083200, 988675200, 991353600, 993945600, 996624000,
999302400, 1001894400, 1004572800, 1007164800, 1009843200, 1012521600,
1014940800, 1017619200, 1020211200, 1022889600, 1025481600, 1028160000,
1030838400, 1033430400, 1036108800, 1038700800, 1041379200, 1044057600,
1046476800, 1049155200, 1051747200, 1054425600, 1057017600, 1059696000,
1062374400, 1064966400, 1067644800, 1070236800, 1072915200, 1075593600,
1078099200, 1080777600, 1083369600, 1086048000, 1088640000, 1091318400,
1093996800, 1096588800, 1099267200, 1101859200, 1104537600, 1107216000,
1109635200, 1112313600, 1114905600, 1117584000, 1120176000, 1122854400,
1125532800, …Run Code Online (Sandbox Code Playgroud) 我有以下 2 列 15 行数据:
data_1 <- structure(list(column_1 = c(120, 130, NA, NA, NA, 130, 182, 130,
NA, 925, NA, 181, 182, 188, NA), column_2 = c(7, NA, 1, 1, 1,
3, 7, NA, 1, NA, 1, NA, 1, 1, 1)), row.names = c(NA, -15L), class = c("tbl_df",
"tbl", "data.frame"))
Run Code Online (Sandbox Code Playgroud)
| 列_1 | 列_2 | |
|---|---|---|
| 1 | 120 | 7 |
| 2 | 130 | 不适用 |
| 3 | 不适用 | 1 |
| 4 | 不适用 | 1 |
| 5 | 不适用 | 1 |
| 6 | 130 | 3 |
| 7 | 182 | 7 |
| 8 | 130 | 不适用 |
| 9 | 不适用 | 1 |
| 10 … |