这似乎是一个简单的问题,但我似乎无法弄明白.如果两列具有相同的值,我想从数据帧(df)中删除重复项,即使这些值的顺序相反.我的意思是,说你有以下数据框:
a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c('A','B','B','C','A','A','B','B')
df <-data.frame(a,b)
a b
1 A A
2 A B
3 A B
4 B C
5 B A
6 B A
7 C B
8 C B
Run Code Online (Sandbox Code Playgroud)
如果我现在删除重复项,我会得到以下数据框:
df[duplicated(df),]
a b
3 A B
6 B A
8 C B
Run Code Online (Sandbox Code Playgroud)
但是,我还想删除该数据帧中的第6行,因为"A","B"与"B","A"相同.我该如何自动执行此操作?
理想情况下,我可以指定要比较哪两列,因为数据帧可能具有不同的列,并且可能非常大.
谢谢!
我知道还有另一篇与此类似的帖子,但它对我的情况没有帮助.我试图从距离矩阵中绘制一个树形图,我计算的不是使用欧氏距离(使用地球移动器与emdist包的距离).我现在正试图从这个矩阵中绘制一个树状图:
dim(x)
[1] 8800 8800
x <- x[1:10,1:10]
x
1 2 3 4 5 6 7
1 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
2 0.67400563 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
3 0.02577228 0.6526842 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
4 0.37994900 0.7268372 0.1240314 0.0000000 0.0000000 0.0000000 0.0000000
5 0.85156584 1.0248822 0.6165767 0.9077611 0.0000000 0.0000000 0.0000000
6 0.51784015 0.5286874 0.5115762 0.6601093 1.1639417 0.0000000 0.0000000
7 0.19290720 0.5906327 0.6576926 0.4350795 0.2986499 0.4130357 0.0000000
8 1.57669127 1.3727582 1.4215065 1.9522834 1.0919793 0.9681544 1.0372481 …Run Code Online (Sandbox Code Playgroud) 我正在尝试为矩阵中的每个单元格条目写入最小值,即在相同维度的新矩阵中的rowsum值或colsum值.
例如:
说我有矩阵c看起来像这样:
x <- matrix(seq(1:6),2)
x
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
Run Code Online (Sandbox Code Playgroud)
它的rowum和colsum是:
rowSums(x)
[1] 9 12
colSums(x)
[1] 3 7 11
Run Code Online (Sandbox Code Playgroud)
所以基于该信息,新矩阵应如下所示:
[,1] [,2] [,3]
[1,] 3 7 9
[2,] 3 7 11
Run Code Online (Sandbox Code Playgroud)
我一直在考虑使用apply但我不知道如何编写if语句来为每个单元格条目写出rowsum或colsum中的最小值.有任何想法吗?
我试图平滑一个11×8矩阵,我似乎无法找到一种方法来做到这一点.我知道这有几个主题,但没有一个对我的情况有所帮助.我发现的每种方法都需要某种z~x*y方法.在我的情况下,我只有一个矩阵,我想简单地平滑所有单元格条目,以使表面更平滑.
m
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 29.02530 28.57123 39.02334 38.25483 29.59624 65.01706 41.04771 98.62005
[2,] 24.46539 24.08265 32.89272 32.24494 24.94663 54.80279 34.59906 83.12670
[3,] 28.30679 27.86395 38.05733 37.30784 28.86359 63.40758 40.03159 96.17873
[4,] 24.99883 24.60774 33.60991 32.94800 25.49056 55.99770 35.35345 84.93918
[5,] 24.63308 24.24771 33.11817 32.46595 25.11761 55.17842 34.83621 83.69646
[6,] 29.85776 29.39066 40.14254 39.35199 30.44506 66.88177 42.22497 101.44850
[7,] 18.54275 18.25267 24.92998 24.43901 18.90749 41.53601 26.22324 63.00320
[8,] 24.43846 24.05615 32.85652 32.20945 24.91917 54.74248 …Run Code Online (Sandbox Code Playgroud) 我想找到在下面的向量中等于"1"的连续重复元素的起始和结束索引.矢量具有可以等于"1"或NA的值.
例如:
out2
[1] "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1"
[21] "1" NA NA NA NA NA "1" "1" "1" "1" "1" "1" NA NA NA NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)
输出应如下所示
[,1] [,2]
[1,] 1 21
[2,] 27 32
Run Code Online (Sandbox Code Playgroud) r ×5
matrix ×3
apply ×1
dataframe ×1
duplicates ×1
if-statement ×1
smooth ×1
spline ×1
vector ×1