我有一个函数,它在一个数据帧中使用两列:
def create_time(var, var1):
if var == "Helår":
y = var1+'Q4'
else:
if var == 'Halvår':
y = var1+'Q2'
else:
y = var1+'Q'+str(var)[0:1]
return y
现在我想遍历我的数据帧,使用函数创
我有一个数据帧,如下所示: test
# Name1 Name2 Match
#1 A C 1
#2 E NA 0
#3 D G 1
#4 R NA 0 如果两个name列都有非NA元素,则match列显示1,如果没有非NA元素,则显示0。我想创建一种读取数据帧的方法,以便如果测试$match == 0,则Name 1中的行元素将被复制到Name 2,如下所示: test
# Name1 Name2 Match
#1 A C 1
#2 E E
这是R编程的新手,我有一个dataframe,我试图从其中创建一个更简洁的表,方法是仅当" name“列中包含特定名称时才拉出整个行。这些名称都在一个单独的文本文档中。有什么建议吗?
我试过了:
refGenestable <- dbGetQuery(con, "select row_names, name, chrom, strand, txStart, txEnd from refGene where name in c_Gene")
其中c_Gene是我需要测试的名称列表,我已经将其转换为数据帧。我也尝试过将其转换为字符串列表并对其进行迭代,但也遇到了问题
我有一个包含数百列的数据框,我想更改它的名称。我对R非常陌生,所以很容易理解它的逻辑,但我就是在网上找不到相关的例子。
我能得到的最接近的结果是:
projectFileAllCombinedNames <- for (i in 1:200){names(projectFileAllCombined)[i+1] <-variableNames[i]}
基本上,从projectFileAllCombined的第二列开始,我希望遍历数据帧中的列,并为它们分配第二个数据帧中的数据值。我可以使用以下代码手动更改一个列名:
colnames(projectFileAllCombined)[2
我试图在R数据中对变量进行重新编码。示例-我的数据集中的变量X包含1s和0s。我想创建另一个变量Y,它分别将1s&0从X重新编码为Yes & No。
我尝试这样做来创建已编码的Y变量:
w <- as.character()
for (i in seq_along(x)) {
if (x[i] == 1) {
recode <- "Yes"
} else if (x[i] == 0) {
recode <- "No"
}
w <- cbi
我正在尝试从数据帧的列中提取+或-符号到一个向量:
如果我有这个数据帧:
sample info
A man;+;yes;no
B man;-;no;no
C woman;+;yes;no
D man;NA;no;no
E woman;-;yes;no
我正在尝试将info列中包含的符号(+或-)提取为一个向量:
strand<-vector()
for (i in 1:nrow(df)){
if(grepl(";\\+;", df[i,2]) == TRUE){
stra
我正在试着找出包含特定单词的句子(例如:高),如果该词出现在数据帧的句子中,我想在该数据帧中添加另一列,表示1表示存在,0表示不存在。 Reviews: contains_awesome
Today is an awesome day. 1
The book is good. 0
Awesome weather 1 我尝试了一个特别的评论,因为: grep("awesome", tolower(df$Reviews[1])) # returned output a
我是一个R初学者;我现在正从SAS转到R。
我在R中有很多名为x1、x2、x3的数据帧。xn,它们都有名为a和b的列。所以我尝试添加一个名为c的列,其中c是由a和b相加的。我还想用for循环将这个c列添加到所有数据帧中。我怎么能这样做呢?这是一个示例代码,但它不起作用。
a<-c(1:3)
b<-c(2:4)
x1<-data.frame(a,b)
a<-c(11:13)
b<-c(22:24)
x2<-data.frame(a,b)
for (i in 1:2)
{paste0("x",i)$c<-a+b}
我希望基于R中的2列合并2个数据帧,这两个数据帧称为popr和data列,它们共享相同的2个变量: USUBJID和TRTAG2N,这两个变量是我想要组合这两个数据帧的变量。
当我只尝试根据一列进行合并时,合并函数就能工作:
merged <- merge(popr,droppedcol,by="USUBJID")
当我试图通过使用2列合并并查看数据框架“工期”时,表是空的,没有值,只有列标题。它说“表中没有可用的数据”。
我的任务是在R中复制SAS代码:
data duration;
set pop combined1 ;
by usubjid trtag2n;
我在R中有一个数据帧:
a b c d e
1 2 3 23 1
4 5 6 -Inf 2
7 8 9 2 8
10 11 12 -Inf NaN
如果d列中的对应值是-Inf,我想用NA替换e列中的所有值,如下所示:
a b c d e
1 2 3 23 1
4 5 6 -Inf NA
7 8 9 2 8
10 11 12 -Inf NA
任何帮助都是非常感谢的。我无法在没有循环的情况下完成这个任务,整个数据帧需要很长时间才能完成。
我正在尝试添加两个列并创建一个新列。此新列应成为数据帧或输出csv文件中的第一列。
column_1 column_2
84 test
65 test
输出应为
column column_1 column_2
trial_84_test 84 test
trial_65_test 65 test
我尝试了下面给出的方法,但它们不起作用:
sum = str(data['column_1']) + data['column_2']
data['column']=data.app
我试图从R中的for循环中填充数据帧。列的名称是在循环中动态生成的,一些循环变量的值在填充数据帧时用作值。例如,当前列的名称可以是循环中字符串形式的某个变量名,该列可以将当前迭代器的值作为其在数据框中的值。
我尝试在循环之外创建一个空数据框,如下所示
d = data.frame()
但是我真的无法对它做任何事情,当我试图填充它的时候,我遇到了一个错误
d[1] = c(1,2)
Error in `[<-.data.frame`(`*tmp*`, 1, value = c(1, 2)) :
replacement has 2 rows, data has 0
这可能是实现我想要
我有一个大约500,000行的数据帧。其中一列包含正整数值,比方说A列。
现在我需要创建第二个数据帧,它的行数等于sum( dataframe $A)。这已经完成了。
当我需要用数据填充这个新的数据帧时,性能问题就出现了。我尝试为第二个框架创建一个列A2,如下所示:
A2<-vector()
for (i in 1:nrow(dataframe)){
A2<-c(A2,rep(dataframe$B[i],dataframe$A[i]))
}
对于正在处理的大量行,外部循环显然非常慢。关于如何以更快的处理速度完成此任务的任何建议。
感谢您的回复