I am new to R and have tried for a good while to figure out how to code this
in R.  The dataset below:

 


FTIStandKey

State

County

FTITract

CoverType

Ver_CT

V_Origin

V_SpGrp

	


NAH6005-001

Texas

Jasper

NAH6005

PPLB-2000-U

PPLB-2000-U

P

P

	


NAH6005-002

Texas

Jasper

NAH6005

NHHX-1950-O

NHHX-1950-I

N

H

	


NAH6253-001

Texas

Tyler

NAH6253

PPLB-2001-U

PPLB-2001-U

P

P

	


NAH6253-002

Texas

Tyler

NAH6253

PPLB-1993-U

PPLB-1993-U

P

P

	


NAH6253-003

Texas

Tyler

NAH6253

PPLB-2003-U

PPLB-2003-U

P

P

	


NAH6253-005

Texas

Tyler

NAH6253

XSOP-9999-C

XSOP-9999-C

X

S

	


NAH6253-008

Texas

Tyler

NAH6253

NPLB-1975-O

NPLB-1975-O

N

P

	


 

The SAS code for what I want to do is:

 

/*

 if FTIStandKey=" NAH6253-003" then do;

   CoverType=" XSOP-9999-C ";

   V_SpGrp="T";

   V_Origin="T";

 end;

 

What I want to do is to be able to select certain FTIStandKey's and change
values in the dataset.  For example, I would like to select by
FTIStandKey=="NAH6253-003", and change the entries for CoverType="
XSOP-9999-C " and change the V_SpGrp=="T", and also change V_Origin=="T".  I
only want to change the record for the one FTIStandKey.  All the other
records need to remain the exact same.  I have spent a good bit of time
trying to figure this out but with no success.   Any help would be greatly
appreciated.

 

The only thing I could find even close to what I wanted to do is listed
below:

 

# R Program for Multiple Conditional Transformations.

# Read the file into a data frame and print it.

load(file="c:\\mydata.Rdata")

print(mydata)

 

# Use column bind to add two new columns to mydata.

# Not necessary for this example, but handy to know.

 

mydata <- cbind(mydata, score1 = 0, score2 = 0)

 

attach(mydata)

mydata$guys <- gender=="m" #Creates a logical vector for males.

mydata$gals <- gender=="f" #Creates another for females.

print(mydata)

 

# Applies basic math to the group selected by the logic.

 

mydata$score1[gals]<- 2*q1[gals] + q2[gals]

mydata$score2[gals]<- 3*q1[gals] + q2[gals]

mydata$score1[guys]<-20*q1[guys] + q2[guys]

mydata$score2[guys]<-30*q1[guys] + q2[guys]

print(mydata)

 

# This step uses NULL to delete the guys & gals vars.

mydata$gals <- mydata$guys <- NULL

print(mydata)

 

This is how I modified the code from above to try to do what I wanted:

 

StandFTI <- cbind(StandFTI, score1 = NA, score2 = NA)

 attach(StandFTI)

StandFTI$Stand <- FTIStandKey=="NAH6005-001" #Creates a logical vector for
males.

StandFTI$score1[Stand]<- "TEST"

print(StandFTI)

 

But I get the warning message: 

 

In `[<-.factor`(`*tmp*`, guys, value = "TEST") :

  invalid factor level, NAs generated

 

Any help will be greatly appreciated!

 

Thanks,

 

Randy Cass

 

 


	[[alternative HTML version deleted]]

