У меня есть data.frame, состоящий из координат точек в 3D. Существует 4 x 3 столбца для 4 возможных точек A1, A2, A3, A4. В каждой строке есть ровно две ненулевые точки (любые два из A1 ... A4). Мне было интересно, можно ли извлечь ненулевые триплеты в новый data.frame без использования циклов.extract subset from data.frame
Оригинал data.frame:
df<-data.frame(
rbind(
c(0,0,0,1,2,3,0,0,0,5,4,1),
c(1,2,2,1,2,3,0,0,0,0,0,0),
c(0,0,0,0,0,0,2,1,1,5,4,1),
c(0,0,0,1,3,1,2,1,1,0,0,0)
))
colnames(df) <- c("x1","y1","z1","x2","y2","z2","x3","y3","z3","x4","y4","z4")
Что я хочу:
df2<-data.frame(
rbind(
c(1,2,3,5,4,1),
c(1,2,2,1,2,3),
c(2,1,1,5,4,1),
c(1,3,1,1,2,3)
))
colnames(df2) <- c("x5","y5","z5","x6","y6","z6")
Благодаря
Когда вы имеете в виду два ненулевых точек, они могут быть (5,4,0), например? или они никогда не будут равны нулю? Пример: может ли это случиться? 'c (0, 0, 0, 1, 2, 3, 0, 0, 0, 5, 4, 0)'? – Arun
у них никогда не будет нулевого компонента – mira