我有一个场景,我正在尝试将CSV加载到R.我无法修改CSV,因为它是一个系统文件
以下是我正在处理的几行CSV。我想换行没有。右边是1,因为CSV列中的列标题不正确,之后我必须删除NULL列。
以下是我的data.frame
行
V1 V2 V3 V4 V5 V6 V7 V8 V9
1 NA Cy1 NA Cy2 NA Cy3 NA Cy4 NA
2 A1 NA NA NA NA NA NA NA NA
3 A2 NA 94 NA 25 NA 11 NA 119
4 A3 NA 94 NA 25 NA 13 NA 198
5 B1 NA 94 NA 32 NA 113 NA 129
6 B2 NA 100 NA 95 NA 102 NA 12
7 B3 NA NA NA NA NA NA NA NA
8 B4 NA 120 NA 14 NA 110 NA 25
9 C2 NA 119 NA 11 NA 40 NA 25
10 C3 NA 198 NA 13 NA 45 NA 32
在这里,我试图实现像
这样的东西 V1 V3 V5 V7 V9
1 NA Cy1 Cy2 Cy3 Cy4
2 A1 NA NA NA NA
3 A2 94 25 11 119
4 A3 94 25 13 198
5 B1 94 32 113 129
6 B2 100 95 102 12
7 B3 NA NA NA NA
8 B4 120 14 110 25
9 C2 119 11 40 25
10 C3 198 13 45 32
如您所见,我必须将data.frame
的第一行移至right
,然后删除' NA'列。
有人可以帮助我。提前致谢
谢谢, KC
答案 0 :(得分:2)
更新
V1 <- c(NA, "A1", "A2")
V2 <- c("Cy1", NA, NA)
V3 <- c(NA, NA, 94)
V4 <- c("Cy2", NA, NA)
V5 <- c(NA, NA, 25)
V6 <- c("Cy3", NA, NA)
df <- data.frame(V1,V2,V3,V4,V5,V6)
df
cols <- c(5,3)
df
for (j in cols) {
df[1,j] <- paste(df[1,j-1])
}
df
for (j in cols) {
df[ ,j-1] <- NULL
}
df
以上代码是最低限度的工作示例。让它运行,看它是否做你想要的(应该)。
您需要指定要保留的列(读取:您想要将值转换为的所有列)及其对象cols
中的数字降序 order(或删除列将搞砸)。
(我是Stata人,所以对那里的R-pros:请原谅我没有使用apply
代替循环。)