在使用rpy2包将保存在R中的dataframe转换为Python时,我遇到了一个问题。
import os
os.environ['R_HOME'] = '/Library/Frameworks/R.framework/Resources'
import rpy2.robjects as ro
from rpy2.robjects import pandas2ri
# define a trivial dataframe in R
ro.r('n = c(1,2)')
ro.r("b = c(NA,'def')
在R中:我如何循环多个列并使用一个定制的函数,该函数接受来自每个列的参数并相应地修改这些列?
例如,我有以下数据:
> head(runTimeSep)
hours h minutes min
1 70 min NA <NA>
2 21 min NA <NA>
3 106 min NA <NA>
4 75 min NA <NA>
5 14 min NA <NA>
6 82 min NA <NA>
7 1 h
我有许多大约10列、大约200000行的大型数据集。并非所有列都包含每行的值,尽管至少有一列必须包含要显示的行的值,但我想为一行中允许多少个NA设置一个阈值。
我的Dataframe看起来像这样:
ID q r s t u v w x y z
A 1 5 NA 3 8 9 NA 8 6 4
B 5 NA 4 6 1 9 7 4 9 3
C NA 9 4 NA 4 8 4 NA 5 NA
D 2 2 6 8 4 NA 3 7 1 32
我希望能够删除包含2个以上单元格的行,这些单元格包含要获取的NA
有什么优雅的解决方案可以在不删除NA所在的行或列的情况下从NA值中清除数据?
示例:
输入数据
C1 C2 C3
R1 A <NA> <NA>
R2 <NA> A <NA>
R3 <NA> <NA> A
R4 B <NA> <NA>
R5 <NA> B <NA>
R6 <NA> <NA> <NA>
R7 C <NA> B
R8 C
如何匹配R中的列并提取值。举个例子:我想用dataframe_two匹配dataframe_one的Name和City列,然后返回另外两个temp和ID列的输出,如果匹配,也应该返回TRUE和ID。
我的输入是:
dataframe_one
Name City
Sarah ON
David BC
John KN
Diana AN
Judy ON
dataframe_two
Name City ID
Dave ON 1092
Diana AN 2314
Judy ON 1290
Ari KN 145
A有一个名为TideModel的DataFrame,它包含以下列和示例数据。
基本上,它由每分钟的潮汐数据和每5分钟的大气压组成,我想在一个新的列中插入和输出每分钟的大气压,叫做AtmP new。
平均9行似乎是前进的方向,但我不知道如何做到这一点。我已经尝试过approx和colMeans。
Time Tide AtmP
00:00 0.51 1010.75
00:01 0.52 NA
00:02 0.52 NA
00:03 0.52 NA
00:04 0.52 NA
00:05 0.52 NA
00:06
我使用的数据集记录了被调查者的种族。应答记录在多个变量之间,被调查者可以选择多个变量。示例:
Black White Asian Hispanic
1 NA NA NA
NA 1 NA NA
NA NA NA 1
NA NA 1 1
在最后一行中,答辩人会选择亚裔和拉美裔。
我想做的是:
( A)将这些列折叠成一个单一的种族变量,不同的代表不同种族的数字(即黑人为1,白人为2等等)。
( B)使任何报告多列的人都被指定为“多列”。
我有点R新手,所以任何帮助都会非常感谢!
如果我在R有这样的数据,
1 2 abc bh abd NA NA
2 3 abc NA NA NA NA
3 4 NA NA ad yu ae
...................
我希望在列1和列2中获得这些值,它们在列的其余部分中有多个值。例如,在这里,1 2有3个值,3 4也有3个值,2 3只有一个值,rest是NA。所以,我想要1 2和3 4。我怎么才能在R里做到呢?谢谢!
我有一个带有一些重复行的dataframe,我只想加入重复的行。举个例子如下:
name b c d
1 yp 3 NA NA
2 yp 3 1 NA
3 IG NA 3 NA
4 OG 4 1 0
重复的行由同名行定义。因此,在本例中,行1和行2需要以某种方式连接,并将NA值替换为可能的数值。
name b c d
1 yp 3 1 NA
2 IG NA 3 NA
3 OG 4 1 0
假设:如果两行的名称相同,且它们的对应列不是NA
我有一个dataframe,它有一个值列和“月份年”列。在第一行中,2018年8月是为月份年列编写的。在value列中有值的下列行是否有可能分别由下一个月自动填充?第二排是2018年9月,第三排是2018年10月,等等。
实际结果:
value month
645 Aug 2018
589 NA
465 NA
523 NA
632 NA
984 NA
预期成果:
value month
645 Aug 2018
589 Sep 2018
465 Okt 2018
523 Nov 2018
632 Dez 2018
984
如何连接和覆盖数据似乎是一个常见的请求,但我还没有找到一个适用于整个数据集的优雅解决方案。
(注意:为了简化数据,我将只对值和一小部分列使用1s和NAs,但实际上我有数百个具有不同值的列)。
我有一个数据表(d1),它在某些列和行中具有NA值。
library(data.table)
d1 = fread(
"r id v1 v2 v3
1 A 1 1 1
2 B 1 1 1
3 C 1 NA NA
4 D 1 1 NA
5 E 1 NA 1")[, r := NULL]
我还有另一个数据表(d2),它包括其他列以及d1中现有列中缺少的数据点。
我希望在dataframe的每一行中删除一个特定的重复值。
让我们说:
DF (3*5)
# c1 c2 c3 c4 c5
1 A A B A NA
2 C C A A B
3 B A A NA NA
我想删除后续的A值。
so New_df:
# c1 c2 c3 c4 c5
1 A B A NA NA
2 C C A B NA
3 B A NA NA NA
由于所有NA值,可以删除第5列(C5)。
重点是只删除后续的'A‘值,其他后续值不应更改(例如,第二行有两个不应该删除的'C’)。
我怎么才能在R里做到呢?
我正在尝试将数据从一个数据帧中的一个列合并到另一个数据帧中的另一个列中,使用一个具有共享数据的列作为操作的关键。我已经尝试过关于如何在r中复制Excel的几个不同的教程,并且我尝试了这里提供的几种不同的合并方法(在stackoverflow...but上的答案中),到目前为止,我没有尝试过做我想要做的事情,尽管它似乎是相当常见的函数。
下面是我尝试do...to提供的一个非常简单的例子,假设这是dataframe1:
ID RESULT
4 YES
1 YES
3 NO
2 YES
下面是dataframe2,其中的结果列完全由NAs