我有一个df,比如 df <-read.table(text="
v1 v2 v3 v4 v5
1 A B X C
2 A B C X
3 A C C C
4 B D V A
5 B Z Z D", header=T) 如果变量v2到v5有一个"X“,我如何过滤它们。我见过一些使用filter at的例子,但这些似乎只适用于数字条件。 filter_at(vars(contains("prefix")), all_vars(.>5)) 并且将>5替换为"X“不起作用
我正在尝试对一个数据帧进行子集,其中我根据多个列值获得多个数据帧。下面是我的例子
>df
v1 v2 v3 v4 v5
A Z 1 10 12
D Y 10 12 8
E X 2 12 15
A Z 1 10 12
E X 2 14 16
预期的输出如下所示,我根据列v1和v2将此数据框拆分为多个数据框
>df1
v3 v4 v5
1 10 12
1 10 12
>df2
v3
我有以下df
ID date v1 v2 v3 v4 v5 v6
A .. 1 2 3 NaN NaN NaN
A .. 0 2 NaN NaN NaN NaN
B .. 0 2 4 5 3 9
B .. 2 6 6 6 3 NaN
D .. 2 NaN NaN NaN NaN NaN
D .. 9 2 2 NaN NaN NaN
D .. 2 2 6
我需要一些帮助来理解一个奇怪的行为,我想循环遍历一个目录,找出哪个子目录以某些特定字符结尾。我写这个是为了测试:
@ECHO.
setlocal EnableDelayedExpansion
set Dir=C:\test
for /f "tokens=*" %%I in ('dir %Dir% /ad /b') do (
set V1=%%I
set V2=!V1!
set V3=%V1%
set V4=%V1:~-4%
set V5=!V1:~-4!
)
endlocal
结果是:
C:>test
C:>setlocal EnableDel
我想用v5列的最长长度(从左侧按位置计算)填充NaN,而不是NaN列的值。
v1 v2 v3 v4 v5
0 a ab abc abcd abcde
1 abcd abc ab NaN NaN
2 a abc ac cde NaN
3 cde c NaN cd NaN
例如,对于v5的第二行,其最长的Not NaN列是v1,然后是abcd。如果存在相同最长长度的多个值,那么最左边的值具有优先级,例如在第三行中,我们将abc作为v5的值,而不是cde。
在潘达斯有可能做到这一点吗?
与R·R合作:
我用了好几串字母:
Orig1 - ABCDE
Orig2 - FGHIJ
Orig3 - KLMNO
我使用strsplit拆分了这些字符串:
Orig1 - A B C D E
Orig2 - F G H I J
Orig3 - K L M N O
我把每个字母放在它自己的行和列中,放在一个dataframe中。每个字符串在自己的行中,每个后续的字母都在自己的列中:
RowName V1 V2 V3 V4 V5
Orig1 A B C D E
Orig2 F G H I J
Orig3 K L M N O
我